home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / e40ds2.arc / E!.DOC next >
Text File  |  1989-03-10  |  136KB  |  3,829 lines

  1.  
  2.                                     E!.DOC
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                            ┌──────────────────────┐
  19.                            │       " E! "         │
  20.                            ╞══════════════════════╡
  21.                            │Multifiles Text Editor│
  22.                            ╞══════════════════════╡
  23.                            │     User's Guide     │
  24.                            │                      │
  25.                            │     Version 4.0      │
  26.                            └──────────────────────┘
  27.  
  28.                  (c) Copyright Patrick Philippot - 1988,1989
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.                                 E!.DOC page 1
  66.  
  67.  
  68.                                     E!.DOC
  69.  
  70.                               ┌─────────────────┐
  71.                               │TABLE OF CONTENTS│
  72.                               └─────────────────┘
  73.  
  74.    A. INTRODUCTION ..................................... page 3
  75.    B. INSTALLATION ..................................... page 5
  76.        notes about DOS 3.3 ............................. page 6
  77.    C. GETTING STARTED .................................. page 7
  78.        using lists of files............................. page 8
  79.        global file search .............................. page 8
  80.        non text files .................................. page 9
  81.        automatic positionning .......................... page 9
  82.    D. THE "E!" SCREEN .................................. page 10
  83.        status .......................................... page 10
  84.        text ............................................ page 10
  85.        command ......................................... page 10
  86.        help ............................................ page 11
  87.        file names ...................................... page 11
  88.    E. MAIN FUNCTION KEYS ............................... page 12
  89.        key oriented help ............................... page 12
  90.    F. MOVING THE CURSOR ................................ page 14
  91.    G. EDITING FUNCTIONS ................................ page 17
  92.        undo ............................................ page 21
  93.    H. BLOCKS MANIPULATION .............................. page 23
  94.        marking / unmarking blocks ...................... page 23
  95.        deleting a block ................................ page 24
  96.        copying a block.................................. page 24
  97.        moving a block .................................. page 24
  98.        overlaying a block .............................. page 24
  99.        adjusting a block ............................... page 24
  100.        special functions ............................... page 25
  101.    I. TEXT FORMATTING .................................. page 27
  102.    J. DRAWING .......................................... page 28
  103.    K. COMMANDS ......................................... page 29
  104.        about E! commands ............................... page 29
  105.        commands reference .............................. page 30
  106.        search / replace commands ....................... page 39
  107.    L. MACROS ........................................... page 42
  108.    M. PROFILES ......................................... page 45
  109.        typematic ....................................... page 45
  110.    N. PROGRAMMING SUPPORT .............................. page 51
  111.    O. E! IS A SHAREWARE ................................ page 53
  112.  
  113.       APPENDIX 1 ....................................... page 54
  114.       APPENDIX 2 ....................................... page 55
  115.       APPENDIX 3 ....................................... page 58
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.                                 E!.DOC page 2
  132.  
  133.  
  134.                                     E!.DOC
  135.  
  136.                            ┌──────────────────────┐
  137.                            │       " E! "         │
  138.                            ╞══════════════════════╡
  139.                            │Multifiles Text Editor│
  140.                            ╞══════════════════════╡
  141.                            │     User's Guide     │
  142.                            │                      │
  143.                            │     Version 4.0      │
  144.                            └──────────────────────┘
  145.  
  146.  
  147.                 (c) Copyright Patrick Philippot - 1988,1989,1990
  148.  
  149.  
  150.  
  151.  A. INTRODUCTION
  152.  _______________
  153.  
  154.            E!  is  a  powerful  full-screen text editor. Its implementation
  155.       has  been  driven  by  three  keywords : quick, simple and efficient.
  156.       It  will  allow  you  to edit as many files as your system memory can
  157.       hold  simultaneously.  A  "split screen" mode is available to see two
  158.       different  parts  of  a file on the same screen. Although E! is not a
  159.       word  processor  it  offers  some functions you will rarely find in a
  160.       text  editor.  His  very  versatile  interface  with  DOS  makes it a
  161.       valuable   tool   for   programmers  but  it  will  be  used  by  non
  162.       programmers as "every day's" text editor.
  163.  
  164.            E!  is  not a word processor. It edits and saves ASCII files and
  165.       does  not  include  any  control character in the text flow except if
  166.       you  insert  them  yourself.  It does not support any printer but you
  167.       have  the  opportunity to add printer control characters in your text
  168.       very easily.
  169.  
  170.            E!  is a professional level tool. It is a high configurable text
  171.       editor  and  you  will  tailor  it  to  exactly suit your needs using
  172.       PROFILES and MACROS.
  173.  
  174.            E!  supports  EGA 43 lines mode, VGA 50 lines mode and a special
  175.       35  lines mode which is more readable than the previous ones. The IBM
  176.       101T enhanced keyboard is also fully supported.
  177.  
  178.            The  number  of  E!  built-in  functions  is  VERY  high.  These
  179.       functions  can  be  grouped  together  to build macros. E! macros are
  180.       saved  in  macro  files  and  you  can  use  them  at any time during
  181.       editing. You can also assign a macro to any key.
  182.  
  183.            E!  configuration  can  be  changed AT ANY TIME by loading a new
  184.       PROFILE.  So  you  can have PROFILES adapted for programming support,
  185.       PROFILES adapted to program documentation editing, etc...
  186.  
  187.            When  loading  a  file  E! automatically expands tabs if this is
  188.       specified   in  the  main  PROFILE.  The  same  option  automatically
  189.       compresses blanks to tabs when saving the edited file. This allows E!
  190.       internals  to  work  only with blanks. This is very important for the
  191.       block  manipulations  functions  which  are  one of the most powerful
  192.       features of E!.
  193.  
  194.            E!  version  3.2  offered  programming  support. You can compile
  195.       any   source   file  from  within  the  editor  without  leaving  it.
  196.  
  197.                                 E!.DOC page 3
  198.  
  199.  
  200.                                     E!.DOC
  201.  
  202.       Compiling  errors  are  retrieved  from the compiler and E! will then
  203.       point  directly  to  the  error  in  the  source text. Compiler error
  204.       messages  are  displayed  just  like in an integrated environment. E!
  205.       supports  ANY  compiler  issuing standard error messages. Borland and
  206.       Microsoft  compilers  (trademarks) have been successfully tested from
  207.       within E!.
  208.  
  209.            And  now,  E!  version  4.0  has  2  new and important features.
  210.       First,  full  windowing  is now supported. You may edit up to 6 files
  211.       simultaneously  on  the  same  screen  in  separate  windows.  And E!
  212.       has  now  a  very  convenient Application Programming Interface (API)
  213.       allowing  you  to  write new functions and utilities using your usual
  214.       language (C, Pascal, etc...).
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.                                 E!.DOC page 4
  264.  
  265.                                     E!.DOC
  266.  
  267. B. INSTALLATION
  268. ---------------
  269.  
  270.            26 files are provided on the E! diskette (s) :
  271.  
  272.               E!.EXE       the editing program
  273.               E!.HLP       the help file
  274.               E!KEY.HLP    the key oriented help file
  275.               E!.PRO       the sample PROFILE
  276.               E!.MSG       the messages file
  277.               - - - - - -
  278.               E!.DOC       ready to print documentation
  279.                              ("type E!.DOC > prn")
  280.               E!FNT35.EGA  special 35 lines mode 8x10 font
  281.               E!FNT352.EGA another 35 lines font
  282.               E!FNT251.EGA two 25 lines mode EGA replacement fonts
  283.               E!FNT252.EGA
  284.               E!FNT251.VGA two 25 lines mode VGA replacement fonts
  285.               E!FNT252.VGA
  286.               E!FONT.EXE   the font loader
  287.               E!FONT.DOC   the E!FONT documentation
  288.               EDITFONT.EXE the font editor
  289.               EDITFONT.DOC the EDITFONT documentation
  290.               MACGEN.EXE   the macros editor / generator
  291.               MACGEN.DOC   the MACGEN documentation
  292.               REGISTR.TXT  the registration form
  293.               LICENSE.DOC  licensing agreements information
  294.               - - - - - -
  295.               API.DOC      the API documentation
  296.               API.PAS      an interface example for TP 4.0/5.0
  297.               EXAMPLE.PAS  a simple example of an API program
  298.               H!.EXE       the help utility
  299.               H!.DOC       the H! documentation
  300.               H!.HLP       the help utility data file
  301.               P!.EXE       the pick file utility
  302.               P!.DOC       the P! documentation
  303.  
  304.            Please backup these files as soon as possible.
  305.  
  306.            The minimum configuration needed to install E! is :
  307.  
  308.               - IBM PC or PS/2 or compatible with 320 K memory.
  309.                 (256 to be loaded and 320 to work normally)
  310.               - 1 diskette drive (not recommended)
  311.               - DOS 3.xx
  312.               - color or monochrome display with MDA, CGA, EGA, PGA,
  313.                 MCGA, VGA or Hercules adapter.
  314.               - 83 or 101 keys keyboard.
  315.  
  316.            To  install  E!  on  a  two diskette drive system, you only need
  317.       to   copy   all  files  except  documentation  on  a  work  diskette.
  318.       Documentation  will  not  fit  on the same diskette that programs and
  319.       utility files.
  320.  
  321.            To  install  E!  on a hard disk system, create a directory named
  322.       C:\E!  (or  whatever  name  you'd  like)  and  copy all files in this
  323.       directory.
  324.  
  325.            Then edit your autoexec.bat and add the following line:
  326.  
  327.            SET E!=C:\E! (or the name you choosed)
  328.  
  329.                                 E!.DOC page 5
  330.  
  331.  
  332.                                     E!.DOC
  333.  
  334.  
  335.            You  can  extend  your  environment  string  if needed using the
  336.       following DOS command in your CONFIG.SYS :
  337.  
  338.             SHELL=C:\COMMAND.COM /P /E:nnn
  339.  
  340.            This will set the environment string length to nnn.
  341.  
  342.            This  way,  E!  will easily find the help file, the main PROFILE
  343.       and  all  utility files (such as the font files). All temporary files
  344.       generated  by  E!  will  be written in that directory. Macros will be
  345.       retrieved from and saved to that directory also.
  346.  
  347.            If  there  is  no  E!  environment  variable in your environment
  348.       string,  E!  will use the current directory as a default. Even if you
  349.       use  E!  on a two diskette drives system, we recommend you set the E!
  350.       variable to the right drive.
  351.  
  352.            If  you  are  working  with a hard disk, don't forget to add the
  353.       directory where you put your E! files to your PATH command.
  354.  
  355.            So far, you are done with the installation of the E! editor.
  356.  
  357.            NOTES about DOS 3.3 :
  358.  
  359.            The  keyboard  driver  of  DOS  3.3  has  some bugs. It does not
  360.       recognize  some  keystrokes  from  enhanced  keyboard  and some "old"
  361.       keystrokes  like  Alt  -  or  Alt  =.  This is at least true for some
  362.       european  drivers  like  KEYB  FR or KEYB GR. If you have any problem
  363.       with  the keyboard under DOS 3.3, use the KEYBxx.COM program from DOS
  364.       3.2 or 3.1 instead of KEYB.COM.
  365.  
  366.            If   you   still   have  problems  with  functions  assigned  to
  367.       "unreachable"   keystrokes  on  your  keyboard,  try  reassign  these
  368.       functions to another key. See below.
  369.  
  370.            Please see also the "TYPEMATIC" section of the PROFILEs chapter.
  371.  
  372.            If  you  have  a  RAM  disk  it  is  highly recommended that you
  373.       autoexec.bat  copy  E!.EXE,  E!  help  and  messages  files and macro
  374.       files to this RAM disk.
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.                                 E!.DOC page 6
  396.  
  397.  
  398.                                     E!.DOC
  399.  
  400. C. GETTING STARTED
  401. __________________
  402.  
  403.  
  404.            There is two ways to put E! at work :
  405.  
  406.            1. Enter E! without any parameter at the DOS prompt.
  407.  
  408.            2.  Enter  E!  followed  by  one or more file specification. DOS
  409.       "wildcards" (* and ?) are allowed.
  410.  
  411.  
  412.                E! [specfich1] [specfich2]...[specfichn]  [/l]
  413.  
  414.                example :
  415.  
  416.                E! C:\*.BAT C:\EDIT\*.*
  417.  
  418.            will  load  any  .BAT file from the root directory and all files
  419.       from  the  C:\EDIT  directory if there is enough memory space to hold
  420.       all these files.
  421.  
  422.            You  can  use the "/l" or "/L" parameter anywhere on the command
  423.       line  to  tell E! to load all the files edited in the last E! session
  424.       in  that  directory.  This  option  will  only  work  if  your active
  425.       profile contains the following line:
  426.  
  427.            LOG YES
  428.  
  429.            examples :
  430.  
  431.            e! /l
  432.            e! *.pas /l
  433.            e! *.pas /l *.doc
  434.  
  435.            are valid E! command lines.
  436.  
  437.            /l  is the only command line parameter accepted by E!. All other
  438.       parameter  should  be  a  file  specification.  All other options are
  439.       definable   within   the   PROFILEs.   Please   see  also  "AUTOMATIC
  440.       POSITIONNING".
  441.  
  442.            During  a E! session a file is never empty and contains at least
  443.       a CRLF sequence followed by an EOF mark (1Ah). So its size will be at
  444.       least 3 bytes.
  445.  
  446.            If  you  have  to  use  several  times the same path within file
  447.       specifications  on  the  E!  command  line,  you  may now use the "+"
  448.       repeat sign instead :
  449.  
  450.          E!  c:\myprogs\sources\*.c   c:\myprogs\sources\*.h
  451.  
  452.            should be replaced with
  453.  
  454.          E!  c:\myprogs\sources\*.c   +*.h
  455.  
  456.            Each  time  the  "+"  sign  is  found at the beginning of a file
  457.       specification,  the  path given in the previous specification will be
  458.       used.  So  you  may  use  the  "+"  sign each time you need it on the
  459.       command line:
  460.  
  461.                                 E!.DOC page 7
  462.  
  463.  
  464.                                     E!.DOC
  465.  
  466.  
  467.          E! c:\myprogs\src\*.pas +*.inc  c:\texts\*.txt +*.doc
  468.  
  469.            is the same as
  470.  
  471.          E! c:\myprogs\src\*.pas c:\myprogs\src\*.inc c:\texts\*.txt  /
  472.             c:\texts\*.doc
  473.  
  474.       USING LISTS OF FILES
  475.       ********************
  476.  
  477.            E!  can  also  manipulate lists of files. Any file specification
  478.       beginning  with  "@"  entered  at the DOS prompt as a E! parameter or
  479.       on  the  E!  command  line  along  with  the  "Edit"  command will be
  480.       considered  as  a  list  of file to be edited. Each line of this list
  481.       may  contain  only  one  file  specification. This file specification
  482.       may contain DOS wildcards.
  483.  
  484.            If  you  want  to  save  the  current edited filenames in a list
  485.       enter  SLIST  (slis)  on  the  E!  command  line.  If  you  specify a
  486.       filename  it  will  be  used  as  the list name and any existing file
  487.       with  the  same name will be erased. If you don't specify a filename,
  488.       the  list  will  be  saved  in  the  file  "FILE.LST"  in the current
  489.       directory.
  490.  
  491.  
  492.       GLOBAL FILE SEARCH
  493.       ******************
  494.  
  495.            Except  if  you  specify a path for the file(s) you want to edit
  496.       E!  will  always search in the current directory only. If you want E!
  497.       to  search  in  other  directories  you  will  have to use the E!PATH
  498.       environment  variable.  If you want E! to search automatically in the
  499.       C:\ASM\SOURCES  directory  you have to add the following line to your
  500.       AUTOEXEC.BAT file :
  501.  
  502.            SET E!PATH=C:\ASM\SOURCES;
  503.  
  504.            Use the same syntax as for the DOS PATH command.
  505.  
  506.            You  can  specify up to 20 different paths. If you are using the
  507.       DOS   APPEND   command,   all  paths  specified  within  the  APPEND=
  508.       environment substring are also searched.
  509.  
  510.            You  should  notice  that  it  is  preferable  to use the E!PATH
  511.       variable  than  any  other  command  or utility. Actually, E! returns
  512.       always  a  full  pathname  for  each file it does edit. If you let E!
  513.       find  a  file  thru  any  utility  like DOSSEARCH or DATAPATH etc...,
  514.       the  file  will  be  automatically saved in the current directory and
  515.       not  in  the  directory  where  it was found. This is because the DOS
  516.       FindFirst  and  FindNext functions do not return a full path but only
  517.       the file name.
  518.  
  519.            Please   be  aware  that  the  GET  command  does  not  use  the
  520.       capabilities described above.
  521.  
  522.            If  you  called  E!  without  any parameter, E! will edit a file
  523.       named E!TEMP.E!. If it already exists, it will be loaded.
  524.  
  525.  
  526.  
  527.                                 E!.DOC page 8
  528.  
  529.  
  530.                                     E!.DOC
  531.  
  532.       NON TEXT FILES
  533.       **************
  534.  
  535.            If  you  specified  a non text file E! will try to load it. Most
  536.       of  the  time  it  will  recognized that this file is not an editable
  537.       text  and  will  issue  a  warning message. This message will also be
  538.       issued  if  the  text  file  does  not  use  full  CRLF  sequences to
  539.       terminate  a  line  but  only a CR. This does not matter and the file
  540.       will  be  normally  editable.  The missing Line Feed will be added by
  541.       file  saving  (except  if  you  told  E!  not  to  do so thru the EOL
  542.       command in your PROFILE).
  543.  
  544.            If  you  want  E! not to load particular files, you only have to
  545.       use  the  LOCK option in your PROFILE. Please see the LOCK section in
  546.       the E! COMMANDS chapter.
  547.  
  548.            If you have loaded a non text file PLEASE DO NOT SAVE IT ! or it
  549.       will likely be truncated.
  550.  
  551.  
  552.       AUTOMATIC POSITIONNING
  553.       **********************
  554.  
  555.            Each  time  you  leave  a E! session, current file names, cursor
  556.       position  and  editing context are saved in a LOG file. If you reload
  557.       one  of  the  last  edited  files E! will restore all these variables
  558.       and  set  the  cursor at the last active position for this file. Here
  559.       is  the  description  of  the  editing  context  elements  which  are
  560.       restored for each file :
  561.  
  562.            - cursor position for each window
  563.            - text position within window
  564.            - wordwrap and justification flags or draw mode flag if it was
  565.              active
  566.            - bookmark position
  567.  
  568.  
  569.            Draw style is a global variable for E! and is not restored.
  570.  
  571.            This  functions are available only if you the LOG option to YES.
  572.       If  not  or if the E!.LOG file has been deleted, E! will position the
  573.       cursor   at   the  beginning  of  text.  However,  if  there  is  any
  574.       inconsistency  between the active window size and the recorded cursor
  575.       position, a partial or total (col 1, row 1) adjustment will be made.
  576.  
  577.            Automatic  repositionning does not work if you leave the file in
  578.       a non 25 lines editing mode.
  579.  
  580.            The  LOG  YES/NO  command  can  be  inserted  in your PROFILE or
  581.       entered on the E! command line. Please see the PROFILE chapter.
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.                                 E!.DOC page 9
  594.  
  595.  
  596.                                     E!.DOC
  597.  
  598. D. THE "E!" SCREEN
  599. __________________
  600.  
  601.  
  602. COLORS
  603.  
  604.            E!  will  configure  itself  automatically  as  it is loaded. It
  605.       will  detect  the  display  adapter  type which is active and set all
  606.       relative  options  accordingly. In some cases E! will set all display
  607.       attributes  to  black  and  white. This will occur on PS/2 because on
  608.       PS/2  8530  there  is  no MONO (7) mode even if you have a monochrome
  609.       screen.  If  you want color attributes in such a case please set them
  610.       directly in your main PROFILE. See the PROFILE chapter.
  611.  
  612.                                  *******
  613.  
  614. STATUS
  615.  
  616.            The  first line on the E! screen is the STATUS line. It contains
  617.       following informations :
  618.  
  619.               . The Text Beginning / Text End indicator or E! version number.
  620.  
  621.               . The "file modified" indicator ( │M│ ).
  622.  
  623.               . The current row number.
  624.  
  625.               . The current column number.
  626.  
  627.               . The total number of lines in the current text.
  628.  
  629.               . A clock (Edit mode) or the file name (Command mode).
  630.  
  631.            Informations  on  this  line are continuously updated. If memory
  632.       becomes  "short"  the  message "MEMORY !!!" will appear on the status
  633.       line  (less  than  2048  bytes available). If there is less than 1024
  634.       bytes  available the message will blink. In this case please save and
  635.       release one or more files to make room.
  636.  
  637.  
  638. TEXT
  639.  
  640.            The  following  22,  32,  40  or  47  lines  (according  to  the
  641.       current  settings)  are  devoted  to the text being edited. This area
  642.       can  be  split  into  two windows. All editing functions are reviewed
  643.       later.
  644.  
  645.            When  the  first  line  displayed  is the very first line of the
  646.       text,  the  [Top  of Text] indicator is displayed. When the last line
  647.       displayed  is  the  very  last  line  the  [End of Text] indicator is
  648.       displayed on the STATUS line.
  649.  
  650.  
  651. COMMAND
  652.  
  653.            The  last  but one line on the screen is the E! COMMAND LINE. On
  654.       this line you will enter and edit E! commands. These commands will be
  655.       described later. While in EDIT mode this line displays :
  656.  
  657.               . The current file name.
  658.  
  659.                                 E!.DOC page 10
  660.  
  661.  
  662.                                     E!.DOC
  663.  
  664.  
  665.               . The insert toggle status (Ovrw or Ins).
  666.  
  667.               . The  WORDWRAP (W) , JUSTIFICATION (J),  CASE
  668.                 and DRAW mode toggles status.
  669.  
  670.               . The block mark status (Marked,Unmarked or External).
  671.  
  672.                 Marked   : the current text is marked.
  673.                 Unmarked : no text is marked.
  674.                 External : a text is marked but it is not the current text.
  675.  
  676.               . The current text size.
  677.  
  678.  
  679.            While  in  COMMAND  mode, the line is free, allowing the user to
  680.       enter, retrieve or edit commands. The ESCAPE key toggles between EDIT
  681.       mode  and  COMMAND  mode.  Commands can be retrieved using the up and
  682.       down arrow keys.
  683.  
  684.  
  685. HELP
  686.  
  687.            The   last   line   in  its  normal  state  shows  a  help  text
  688.       remembering  the  use  of  the function keys. If you depress the ALT,
  689.       SHIFT  or  CONTROL  keys,  this text will change according to the key
  690.       being depressed. (See DELAY command).
  691.  
  692.            Error messages are displayed on the help line when necessary.
  693.  
  694.            Functions requesting input from the user generally display their
  695.       prompt on the help line.
  696.  
  697. FILENAMES
  698.  
  699.            Within  E!  filenames  are always "normalized". The name used is
  700.       always  the  full  path name of the file. This is a security for your
  701.       files  since this function makes it impossible to load twice the same
  702.       file.
  703.  
  704.            All  informations  displayed on the E! screen are related to the
  705.       file displayed in the active window.
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.                                 E!.DOC page 11
  726.  
  727.  
  728.                                     E!.DOC
  729.  
  730. E.  MAIN FUNCTION KEYS
  731. ______________________
  732.  
  733.  
  734.            We  will  now  present  the "basic" configuration of E!. In EDIT
  735.       mode  all  keys  and functions can be reassigned (except ESCAPE). May
  736.       be,  you'll  have  to  modify  the  help  files or the messages file.
  737.       This  files  were  intentionnaly  made  editable  to  make  this  job
  738.       easier.  Though,  in  COMMAND  mode editing keys are not redefinable.
  739.       So we recommend you do not reassign these keys.
  740.  
  741.            i.e.  :  HOME  will always put the cursor at the beginning of the
  742.       command  line  in COMMAND mode even if you assigned a new function to
  743.       the home key in EDIT mode.
  744.  
  745.            REMEMBER  :  Use  the ESCAPE key to toggle between EDIT mode and
  746.       COMMAND mode.
  747.  
  748.            Now, let's have a look at the 10 main functions keys.
  749.  
  750.  
  751.       ┌──┐ ┌──────┐
  752.       │F1│ │Alt F1│
  753.       └──┘ └──────┘
  754.  
  755.            F1  will  load the E! HELP file, E!.HLP. This is a "normal" text
  756.       file  which you may want to edit each time you reassign a function to
  757.       a  key.  Using  the  PgDn and PgUp keys will take you from chapter to
  758.       chapter.  If  you  want  to access a chapter directly, enter the line
  759.       number specified in the table of contents on the command line.
  760.  
  761.            We  recommend you protect this file after modifying it using the
  762.       DOS command ATTRIB :
  763.  
  764.               attrib +r e!.hlp
  765.  
  766.            To make new modifications enter :
  767.  
  768.               attrib -r e!.hlp
  769.  
  770.            Editing   read-only   files   is  allowed  with  E!.  It's  just
  771.       impossible to save them.
  772.  
  773.            KEY ORIENTED HELP
  774.            *****************
  775.  
  776.            Let's  assume  you have forgotten what function is assigned to a
  777.       specific  key.  Just  hit  Alt F1. E! will issue a message asking you
  778.       to  hit  the key about which you want information. Hit this key and a
  779.       short  message  will  be  displayed explaining what this key actually
  780.       does.
  781.  
  782.            This  message  is  valid even if you have assigned a non default
  783.       function, a macro, a command or a profile to that key.
  784.  
  785.       ┌──┐
  786.       │F2│
  787.       └──┘
  788.  
  789.            F2  causes  the  current text to be written to disk. If the file
  790.  
  791.                                 E!.DOC page 12
  792.  
  793.  
  794.                                     E!.DOC
  795.  
  796.       already  exists  a  warning message is issued. Hit Y or N in response
  797.       to  the  prompt.  If  the  active  PROFILE  contains  the  WARNING NO
  798.       command  (or  if  it has not modified a previous WARNING NO command),
  799.       no   warning  message  is  issued  and  the  file  is  saved  without
  800.       prompting the user.
  801.  
  802.            The WARNING NO command may be entered on the E! command line.
  803.  
  804.       ┌──┐
  805.       │F3│
  806.       └──┘
  807.  
  808.            F3  tells E! you want to quit the current text. If this text has
  809.       been  modified  E!  prompts  you to know if you want to "discard" all
  810.       modifications you made. Hit Y or N in response to the prompt.
  811.  
  812.       ┌──┐
  813.       │F4│
  814.       └──┘
  815.  
  816.            F4  is  the  same  as  F2  + F3. The only difference is that the
  817.       text  is  never  "compressed"  when  you  save it with F2. It will be
  818.       compressed  if  you  save  it  with  F4  only  if your active PROFILE
  819.       contains  the  AUTOCOMP  YES  command, if you entered this command on
  820.       the E! command line or if you explicitly compressed the text with the
  821.       COMPRESS  command  before  you  saved  it.  Please  see  COMPRESS and
  822.       AUTOCOMP commands.
  823.  
  824.       ┌──┐ ┌──────┐ ┌──────┐ ┌──────┐
  825.       │F5│ │Alt F5│ │Alt F6│ │Alt F7│
  826.       └──┘ └──────┘ └──────┘ └──────┘
  827.  
  828.            The  F5  key  causes  E!  to prompt you for a window orientation
  829.       (Hit  H  for  horizontal or V for vertical). Then E! creates a window
  830.       at  the  cursor  position.  The  current  text  is  loaded in the new
  831.       window. Up to 6 windows are allowed.
  832.  
  833.            You may use the F10 / Alt F10 in each window created.
  834.  
  835.            Use the Alt F5 key to toggle between windows.
  836.  
  837.            Removing  a window is quite simple : hit Alt F6 and indicate the
  838.       window  border  to  remove  using a direction key. Be aware that only
  839.       borders used by 2 windows only may be removed.
  840.  
  841.            If you want to return to the full screen state hit Alt F7.
  842.  
  843.            Updating  a window will also update the alternate window if they
  844.       share a common portion of text.
  845.  
  846.       ┌──┐
  847.       │F6│
  848.       └──┘
  849.  
  850.            This  key  activates,  initializes  or terminates the DRAW mode.
  851.       DRAW  mode  is  fully  explained  later  in  this  documentation.  E!
  852.       automatically  toggles  to  COMMAND  mode  and prompts you for a DRAW
  853.       mode.  An  help  message is displayed allowing you to choose one of 8
  854.       DRAW modes. An empty entry activates the last active DRAW mode or the
  855.       mode #1 if you never used the DRAW mode in this session.
  856.  
  857.                                 E!.DOC page 13
  858.  
  859.  
  860.                                     E!.DOC
  861.  
  862.  
  863.            If you were already in DRAW mode it is deactivated.
  864.  
  865.            While in DRAW mode, WORDWRAP and JUSTIFICATION are automatically
  866.       deactivated.  They  will be restored in their previous state when you
  867.       will exit the DRAW mode.
  868.  
  869.       ┌──┐
  870.       │F7│
  871.       └──┘
  872.  
  873.            F7  activates the COMMAND mode and initializes the NAME command.
  874.       So  you  can  rename  the current text. The original file will remain
  875.       unchanged.  If  you gave the name of an existing file, E! will prompt
  876.       you at save time only if the WARNING option is active. See above.
  877.  
  878.       ┌──┐
  879.       │F8│
  880.       └──┘
  881.  
  882.            F8  activates the COMMAND mode and initializes the EDIT command.
  883.       E!  waits  for  one  or  more  file  specifications.  Like on the DOS
  884.       command line, wildcards are allowed. Please see GETTING STARTED.
  885.  
  886.       ┌──┐
  887.       │F9│
  888.       └──┘
  889.  
  890.            F9  will  restore  the  current line in its previous state, that
  891.       is  the  state  it  was  when  you  moved the cursor to that line. Be
  892.       aware  that  certain  functions validate the current line even if you
  893.       do  not  leave  it.  In  this  case  F9  will  take the new line into
  894.       account.
  895.  
  896.            F9  will  also  add the current line into the UNDO buffer before
  897.       restoring  the  previous  state of the line. So you can copy the line
  898.       anywhere  in  the  text  using  ALT 8 (read from UNDO buffer) without
  899.       having to unmark an existing block or group of lines.
  900.  
  901.       ┌───┐ ┌───────┐
  902.       │F10│ │Alt F10│
  903.       └───┘ └───────┘
  904.  
  905.            If  you  are  editing several files simultaneously, you can move
  906.       thru the files buffers using F10 (forward) and ALT F10 (backward). If
  907.       you want to access a text directly you can:
  908.  
  909.            1/  Enter  an  EDIT  filename command. E! knows that the file is
  910.       already in memory and will not reload it.
  911.  
  912.            2/  Use  the  ALT1..3 keys to mark a text and access it directly
  913.       using the same keys.
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.                                 E!.DOC page 14
  924.  
  925.  
  926.                                     E!.DOC
  927.  
  928. F. MOVING THE CURSOR
  929. ____________________
  930.  
  931.            Moving  the  cursor  with  E!  is  done in a very classical way.
  932.       That  is  you  will  not be surprised using general purpose keys such
  933.       as  arrow  keys,  PgDn,  PgUp,  Home  and  so  on... Although this is
  934.       absolutely  possible,  we  don't  recommend  that you reassigned such
  935.       "classical" keys.
  936.  
  937.  
  938.          Direction keys....Move   one  character  up,  down,  left  or
  939.                            right.  Pressing  the down arrow will add a
  940.                            new  and  empty  line  to  the  text if the
  941.                            EXTENSION  option  of  the  active  profile
  942.                            has been set to YES (default).
  943.  
  944.          SHIFT+arrow.......If   your  keyboard  does  not  accept  the
  945.                            TYPEMATIC  commands  you can accelerate the
  946.                            cursor  horizontal  displacement by keeping
  947.                            one  of  the  SHIFT keys depressed when you
  948.                            use  the  left or right arrow key. This may
  949.                            not  work  on  certain  "compatibles"  like
  950.                            the  COMPAQ  machines.  In  this  case  you
  951.                            will  have  to  set the CURSOR option to NO
  952.                            in  your  main  profile.  This  will  avoid
  953.                            problems.
  954.  
  955.          Tab...............Move  the  cursor to the next TAB pos. (See
  956.                            Autotab).  All  text  at  the  right of the
  957.                            cursor  position  is  moved  along with the
  958.                            cursor.
  959.  
  960.          Shift Tab.........Move   the   cursor  to  the  previous  TAB
  961.                            position.
  962.  
  963.          Backspace.........Delete    left    character.   Please   see
  964.                            Autoback.   If   the   cursor  is  at  line
  965.                            beginning,  the  current  line is joined to
  966.                            the previous line.
  967.  
  968.          PgDn,PgUp.........Scroll one window up or down.
  969.  
  970.          Home..............Move  the  cursor to the beginning of line.
  971.                            If  the  cursor is already on this position
  972.                            it   is  moved  to  the  beginning  of  the
  973.                            previous line.
  974.  
  975.          End...............Move  the  cursor  to  the  end of line. If
  976.                            the  cursor  is already at this position it
  977.                            will  be  moved  to  the  end  of  the next
  978.                            line.
  979.  
  980.          Ctrl Home.........Move  the  cursor  to  the  first  line  of
  981.                            text.  If  the  cursor  is  already  on the
  982.                            first   line   it  will  be  moved  to  the
  983.                            beginning of line.
  984.  
  985.          Ctrl End..........Does  the  same  but towards the end of the
  986.                            current text.
  987.  
  988.  
  989.                                 E!.DOC page 15
  990.  
  991.  
  992.                                     E!.DOC
  993.  
  994.          Ctrl PgUp,PgDn....Move  the  cursor  to  the top or bottom of
  995.                            the active window.
  996.  
  997.          Ctrl Left,Right...Move  the  cursor  to  the  next,  previous
  998.                            word.  E!  really  searches  a word, so all
  999.                            punctuations signs will be ignored.
  1000.  
  1001.          Shft F1,F2,F3,F4..Scroll  the  current  window  right,  left,
  1002.                            up  or  down.
  1003.                            You  can  also  scroll  larger  amounts  of
  1004.                            text,  left  or  right  using ALT F3 or ALT
  1005.                            F4.  The  amount  of columns to be scrolled
  1006.                            is  specified  using  the SCROLL command in
  1007.                            the  active  PROFILE  or  on the E! command
  1008.                            line. E! defaults to 40 columns.
  1009.  
  1010.          Shft F5...........Center  the  current  line  in  the  active
  1011.                            window.
  1012.  
  1013.          Shft F6...........Move   the  current  line  to  the  top  of
  1014.                            active window.
  1015.  
  1016.          Alt I.............Remove all TAB positions.
  1017.  
  1018.          Alt K.............Drop   a   bookmark   at   current   cursor
  1019.                            position.  Using  ALT K again will move the
  1020.                            cursor  to  the  bookmark  and  remove  it.
  1021.                            Should  you  want  to use the bookmark more
  1022.                            than  once,  so  please  hit  ALT  K  twice
  1023.                            each  time  you  move  the  cursor  to  the
  1024.                            bookmark.   There   is   one  bookmark  per
  1025.                            active text.
  1026.  
  1027.          Alt P.............Move  the  cursor  to  the  next paragraph.
  1028.                            Paragraphs   are   separated   with   blank
  1029.                            lines.
  1030.  
  1031.          Alt T,R...........CreaTe  or  Remove  a TAB position. Use TAB
  1032.                            or SHIFT TAB to access TAB positions.
  1033.  
  1034.          Alt Y,E...........Move  the  cursor  to  the  beginning or to
  1035.                            the end of the marked block.
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.                                 E!.DOC page 16
  1056.  
  1057.  
  1058.                                     E!.DOC
  1059.  
  1060. G. EDITING FUNCTIONS
  1061. ____________________
  1062.  
  1063.            E!  has  a  lot of editing features. Generally editing functions
  1064.       will  be called using a keystroke involving the Control key. The next
  1065.       chapter  explains  how  E!  implements  block manipulation functions.
  1066.       These  functions  are generally called with a keystroke involving the
  1067.       Alt key.
  1068.  
  1069.  
  1070.          Ctrl A............Move  the  current  line  first  non  blank
  1071.                            character to cursor position.
  1072.  
  1073.          Ctrl B............Convert  the  first  letter  of the current
  1074.                            word  to  uppercase.  If  the  current word
  1075.                            contains one of the following characters :
  1076.  
  1077.                              - (minus) ,  _ (underscore)  , . (dot)
  1078.  
  1079.                            each  letter  preceding this character will
  1080.                            also  be  converted to uppercase. All other
  1081.                            characters   in   the   current   word  are
  1082.                            converted  to  lowercase if necessary. This
  1083.                            will  be  useful  if  you  are using Pascal
  1084.                            conventions to name your program variables.
  1085.  
  1086.          Ctrl C............Clear the current line.
  1087.  
  1088.          Ctrl D............Repeat  character.  This  function  will be
  1089.                            used  to  enter a great number of identical
  1090.                            characters. First enter the character to be
  1091.                            repeated   and  then  enter  the  3  digits
  1092.                            constituing  the  repeat  count.  Note  : 3
  1093.                            digits  are  mandatory.  When  calling this
  1094.                            function E! displays a help message showing
  1095.                            you how to enter this information.
  1096.  
  1097.          Ctrl E............Delete end of line from cursor.
  1098.  
  1099.          Ctrl F............Toggle the WORDWRAP mode.
  1100.  
  1101.          Ctrl G............Toggle  the  35,  43 or 50 lines mode if an
  1102.                            EGA  or VGA adapter is installed and if the
  1103.                            EGA-VGA  command  is  set  to  YES  in your
  1104.                            active  profile  (which is the default). To
  1105.                            access  the  35  lines mode you have to set
  1106.                            the  35LINES  command to YES in your active
  1107.                            profile.
  1108.  
  1109.                                    Adapter      EGA        VGA
  1110.  
  1111.                              EGA-VGA YES
  1112.                              35LINES NO........  43         50
  1113.  
  1114.                              EGA-VGA YES
  1115.                              35LINES YES.......  35         35
  1116.  
  1117.                            To  set  the  35 lines mode E! needs a file
  1118.                            named  E!FNT35.EGA.  This file contains the
  1119.                            font  for the 35 lines mode. This file must
  1120.  
  1121.                                 E!.DOC page 17
  1122.  
  1123.  
  1124.                                     E!.DOC
  1125.  
  1126.                            be  present either in the current directory
  1127.                            or  in  the E! directory (directory defined
  1128.                            with   SET  E!=....).  Please  notice  that
  1129.                            loading  a  non 25 lines mode also modifies
  1130.                            the  BIOS hardcopy routine so it will print
  1131.                            exactly   the   number  of  lines  you  are
  1132.                            actually  using on your screen. There is an
  1133.                            alternate  35  lines  font  which  is named
  1134.                            E!FNT352.EGA. If you want to use it instead
  1135.                            of the default font please rename this file
  1136.                            to E!FNT35.EGA.
  1137.  
  1138.                            The  EGA  suffix  does  not  mean  that you
  1139.                            cannot  use  these fonts with a VGA display
  1140.                            adapter. You can.
  1141.  
  1142.          Ctrl J............Toggle the right JUSTIFICATION mode.
  1143.  
  1144.          Ctrl L............If the current word is a valid file name it
  1145.                            will  be  immediatly  edited. This function
  1146.                            combined with the LIST command will be very
  1147.                            very convenient to search and edit files in
  1148.                            your directories.
  1149.  
  1150.                            example  :  in a C source file you have the
  1151.                            following line:
  1152.  
  1153.                            #include "c:\msc\include\myprog.h"
  1154.  
  1155.                            Move  the  cursor  anywhere  between  the 2
  1156.                            quote  characters  and hit Ctrl L. MYPROG.H
  1157.                            will be edited.
  1158.  
  1159.          Ctrl N............Insert   the   file   name  at  the  cursor
  1160.                            position. This works also on the E! command
  1161.                            line.
  1162.  
  1163.          Ctrl P............Execute active macro (see MACROS).
  1164.  
  1165.          Ctrl Q............Restore previous macro (see MACROS).
  1166.  
  1167.          Ctrl R............Record macro (see MACROS).
  1168.  
  1169.          Ctrl S............Repeat last search (see SEARCH commands).
  1170.  
  1171.          Ctrl T............Insert date and time at cursor position.
  1172.  
  1173.          Ctrl U............Cancel macro recording (see macros).
  1174.  
  1175.          Ctrl V............Reset    search   variables   (see   SEARCH
  1176.                            commands).
  1177.  
  1178.          Ctrl W............Delete current word.
  1179.  
  1180.          Ctrl X............If   the   current  line  is  a  valid  DOS
  1181.                            command  it  will be eXecuted. As with Ctrl
  1182.                            L,  it  will be very convenient to use this
  1183.                            function combined with the LIST command.
  1184.  
  1185.                            For  example,  if  you  are editing a batch
  1186.  
  1187.                                 E!.DOC page 18
  1188.  
  1189.  
  1190.                                     E!.DOC
  1191.  
  1192.                            file  you  will  conveniently  debug  it or
  1193.                            execute  it  partially using Ctrl X on each
  1194.                            line  you  want to be eXecuted. If you want
  1195.                            to  delete  a  file in a directory, use the
  1196.                            LIST  command  to  display  that directory,
  1197.                            insert  "DEL"  before the file name and use
  1198.                            Ctrl X, etc...
  1199.  
  1200.          Ctrl Z............If  the  current  line is a valid directory
  1201.                            name,  this  directory  will be LISTed. Any
  1202.                            <DIR> sequence at the beginning of the line
  1203.                            will  do  no harm (that is, if you obtained
  1204.                            the directory name from a LIST command Ctrl
  1205.                            Z will work anyway).
  1206.  
  1207.          Enter.............Insert a new line and move the cursor under
  1208.                            the   first  non  blank  character  of  the
  1209.                            previous  line.  If  the  WORDWRAP mode has
  1210.                            been  activated  the cursor is moved to the
  1211.                            left  margin.  If  the  previous  line is a
  1212.                            blank   line,   cursor   is  moved  to  the
  1213.                            paragraph  margin.  To insert a line before
  1214.                            the very first line of text you have to put
  1215.                            the  cursor  on  the status line and to hit
  1216.                            ENTER.  No other function is available when
  1217.                            the cursor stays on the status line.
  1218.  
  1219.                            If  the SPLIT profile command is set to YES
  1220.                            ENTER  will  cause  the  current line to be
  1221.                            splitted  at  the  cursor  position  if the
  1222.                            Insert  Toggle is on. This a more classical
  1223.                            way of handling the Enter key.
  1224.  
  1225.          BSpace............Delete left character. See AUTOBACK. If the
  1226.                            cursor  is  at  the  beginning  of line the
  1227.                            current  line  is  joined  to  the previous
  1228.                            line.
  1229.  
  1230.          Ctrl Bsp..........Delete  the  current  line.  This line will
  1231.                            be  saved  in  the  UNDO  buffer.  You  can
  1232.                            restore  it  later using Alt 8 : it will be
  1233.                            restored at cursor position.
  1234.  
  1235.          Del...............Delete current character.
  1236.  
  1237.          Insert............Toggle insert mode.
  1238.  
  1239.          Ctrl F1...........Convert the current word to UPPERCASE. Ctrl
  1240.                            F2 will convert to lowercase.
  1241.  
  1242.          Ctrl F3...........Convert  the  current  block  to UPPERCASE.
  1243.                            Ctrl F4 will convert to lowercase.
  1244.  
  1245.          Ctrl F6...........Reformat     current     paragraph     (see
  1246.                            FORMATTING).
  1247.  
  1248.          Ctrl F7...........Reformat current marked group of LINES.
  1249.  
  1250.          Alt J.............Join next line to current line.
  1251.  
  1252.  
  1253.                                 E!.DOC page 19
  1254.  
  1255.  
  1256.                                     E!.DOC
  1257.  
  1258.          Alt S.............Split  current line at cursor position. The
  1259.                            beginning of the new line is aligned on the
  1260.                            the  beginning of the current line. The new
  1261.                            line becomes the current line.
  1262.  
  1263.          Alt V.............Remove  all  trailing  blanks  for all text
  1264.                            lines.   Trailing   blanks   are  sometimes
  1265.                            generated  using  the  COPY BLOCK function.
  1266.                            The   SPACES  YES  option  in  your  active
  1267.                            profile   will  tell  E!  to  automatically
  1268.                            remove  all trailing blanks before saving a
  1269.                            file.
  1270.  
  1271.          Alt X.............Toggle   access   to   "control  characters
  1272.                            editing".   Since  many  E!  functions  are
  1273.                            driven   thru   control  characters  it  is
  1274.                            normally not possible to insert them in the
  1275.                            edited   text.   Alt   X  disables  control
  1276.                            characters  interpretation  and  print them
  1277.                            "as  is"  in  the  text. Doing so makes all
  1278.                            functions triggered with Control characters
  1279.                            unavailable  until  you  hit  Alt  X again.
  1280.                            Note:  Using  control character 26 (Ctrl Z)
  1281.                            in  a  text will insert an EOF mark. So you
  1282.                            will  not be able to reload the file beyond
  1283.                            this mark.
  1284.  
  1285.          Alt =.............Insert  blanks  without  moving the cursor.
  1286.                            NOTE:   see  remarks  on  DOS  3.3  at  the
  1287.                            beginning  of this documentation and in the
  1288.                            DEFINE command section.
  1289.  
  1290.          Alt 0.............Search   the   current  word  beginning  at
  1291.                            cursor   position.   You  can  search  next
  1292.                            occurences using Ctrl S or Alt 0.
  1293.  
  1294.          Alt 1,2,3.........You  can  "mark" the current text using one
  1295.                            of  these  keys.  Using  the same key again
  1296.                            will   bring   you  back  directly  to  the
  1297.                            "marked"  text  from  another  text.
  1298.  
  1299.          Alt 4.............Remove  all  text  marks.  If you release a
  1300.                            "marked"     text     from    memory    the
  1301.                            corresponding  mark  becomes  available  to
  1302.                            other texts.
  1303.  
  1304.          Alt 5.............Refresh  the  current  text.  That  is  all
  1305.                            modifications  you  made  since  you loaded
  1306.                            or  saved  the  text  are discarded and the
  1307.                            text  is  reloaded  from  disk  file.  This
  1308.                            works  exactly  the  same  as releasing the
  1309.                            text  from  memory  without  saving  it and
  1310.                            issuing  a  new  EDIT  command but it saves
  1311.                            time.
  1312.  
  1313.          Alt 6.............Search  a  "MATCHING  BRACE".  Assuming you
  1314.                            are editing the following expression :
  1315.  
  1316.                               3 * (x / (y + z * ( a + b + c)) + 45 )
  1317.                                        ^
  1318.  
  1319.                                 E!.DOC page 20
  1320.  
  1321.  
  1322.                                     E!.DOC
  1323.  
  1324.  
  1325.                            If   you   want  to  find  the  parenthesis
  1326.                            corresponding    to    the    second   left
  1327.                            parenthesis,   move   the   cursor  to  the
  1328.                            second  left  parenthesis  and  hit  Alt 6.
  1329.                            The   cursor   will   be   moved   to   the
  1330.                            corresponding right parenthesis.
  1331.  
  1332.                               3 * (x / (y + z * ( a + b + c)) + 45 )
  1333.                                                             ^
  1334.  
  1335.                            If  there  is  no  matching  brace  in  the
  1336.                            current  text,  the  cursor  is  not moved.
  1337.                            Alt  6  works  with  braces pairs showed in
  1338.                            the   next  paragraph.  Alt  6  works  with
  1339.                            right or left braces.
  1340.  
  1341.          Alt 7.............Insert a "PAIRED BRACE".
  1342.  
  1343.                            1.  E!  looks  for  one  of  the  following
  1344.                            sequence  on  the  current line between the
  1345.                            beginning  of  line  and the current cursor
  1346.                            position :
  1347.  
  1348.                            /* , (* , { , < , [ , (, BEGIN, REPEAT
  1349.  
  1350.                            If   such   a   sequence   is   found   the
  1351.                            corresponding right brace is inserted.
  1352.  
  1353.                            2.If not, E! looks for one of the following
  1354.                            sequence   between   the   current   cursor
  1355.                            position and the end of line :
  1356.  
  1357.                            */ , *) , } , > , ] , ), END, UNTIL
  1358.  
  1359.                            If   such   a   sequence   is   found   the
  1360.                            corresponding  left  brace  is inserted. If
  1361.                            several   "brace   sequences"   are  found,
  1362.                            priority order is as shown above.
  1363.  
  1364.          Alt 8.............See UNDO.
  1365.  
  1366.          Alt 9.............Insert  the  last  line  saved  to  the DOS
  1367.                            screen   buffer   just  after  the  current
  1368.                            line.  The  DOS  screen buffer contains the
  1369.                            last  25  lines  from  the last DOS session
  1370.                            executed  from  E!  or,  if  no DOS session
  1371.                            has  been  executed,  the  screen  that was
  1372.                            active  when  E!  was  called  from the DOS
  1373.                            command  line.  Trailing blank lines on the
  1374.                            screen  are  not  saved  in  the DOS screen
  1375.                            buffer.  So  you  can  insert  in your text
  1376.                            the  results  of any program if it does not
  1377.                            clear  the screen on exit. DOS lines can be
  1378.                            restored only once.
  1379.  
  1380.  
  1381.  
  1382.       UNDO FUNCTION - (ALT 8)
  1383.       ***********************
  1384.  
  1385.                                 E!.DOC page 21
  1386.  
  1387.  
  1388.                                     E!.DOC
  1389.  
  1390.  
  1391.            When  you  delete  lines with Ctrl Bsp or Alt D (marked group of
  1392.       lines  -  with  Alt  L)  these  lines are not lost but saved into the
  1393.       UNDO  buffer.  The  UNDO  buffer  size defaults to 2048 bytes but you
  1394.       can  modify  it with the "UNDO n" option in your main profile where n
  1395.       is  the  number  of  bytes.  This  command  can be issued in the main
  1396.       profile  only  (E!.LOG).  That  is  each  new  UNDO  command  will be
  1397.       ignored. The upper limit for the UNDO size is 65521 bytes.
  1398.  
  1399.            The  UNDO  buffer  works  on  a  LIFO  basis,  that  is the last
  1400.       deleted  line  will be restored first. So a call to the UNDO function
  1401.       (Alt  8)  will restore the last deleted line and so on until the UNDO
  1402.       buffer  is  empty.  Each  line is restored on top of the current line
  1403.       and  becomes  the  active line. So the text will be reinserted in its
  1404.       original  state.  There  will be no UNDO buffer overflow; if there is
  1405.       no  room  enough  to  store  the last deleted line, the older line in
  1406.       the  buffer  will  be lost. A line can be restored only once from the
  1407.       UNDO buffer.
  1408.  
  1409.            Note  :  when  the  buffer is full, the time used to save a line
  1410.       will be proportional to the buffer size. So, it is not recommended to
  1411.       use too large UNDO buffer sizes.
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.                                 E!.DOC page 22
  1452.  
  1453.  
  1454.                                     E!.DOC
  1455.  
  1456. H. BLOCKS MANIPULATION
  1457. ______________________
  1458.  
  1459.            Block functions are one of the most valuable features of E!. All
  1460.       block  functions  are  available to work from a text to another, that
  1461.       is, it is possible to move or copy a block or group of lines from one
  1462.       text  to another text. Consequently, only one active block is allowed
  1463.       at  one  time.  A  call  to a block function is effective even if the
  1464.       block marked is not in the current text. So be careful, if you marked
  1465.       a  block in another text, it will be deleted if you hit Alt D even if
  1466.       this  text  is  not  the current text. Before issuing a block command
  1467.       please  have  a look at the block mark status on the command line. It
  1468.       will indicate wether an internal or external block is marked.
  1469.  
  1470.            For  each  block  function to work, a rectangular block or group
  1471.       of  lines  has  to  be  marked  first. Then you can apply every block
  1472.       function to this block or group of lines. From now, we will generally
  1473.       use the term "block" for everything that is marked.
  1474.  
  1475.  
  1476.       MARKING A BLOCK - Alt B, Alt L and Alt Z
  1477.       ________________________________________
  1478.  
  1479.            There  is  3  ways  to  mark  a  block.  First,  you  can mark a
  1480.       RECTANGULAR block. To do so, you have to move the cursor to the upper
  1481.       left  corner of the block and hit Alt B. This will be already a block
  1482.       containing  only  one  character.  To extend the block mark, move the
  1483.       cursor  to  the  lower right corner of the block and hit Alt B again.
  1484.       Actually, the  relative position of the cursor when you hit Alt B the
  1485.       second  time  is  not so important and you can choose a "lower right"
  1486.       corner  which  is  in fact "before" the "upper left" corner. That is,
  1487.       you have just to hit Alt B twice to define a RECTANGULAR block and E!
  1488.       will understand what you want to do, whatever the cursor position.
  1489.  
  1490.            You  can  also  mark  a  GROUP  of LINES using Alt L. Again, you
  1491.       have  to  hit  Alt  L  twice.  All lines between the two marked lines
  1492.       will  be  marked  and  highlighted.  You  may naturally mark only one
  1493.       line, using Alt L only once.
  1494.  
  1495.            The  third  way  of marking is the SENTENCE marking (Alt Z). You
  1496.       will  use  it  in  a  similar way as you will use Alt L but the first
  1497.       and  last  line  of  the  group  will  accept  to be partially marked
  1498.       depending  on  the  cursor position (column) when you hit Alt Z. This
  1499.       way  of  marking  is  less  frequently used than both BLOCK and LINES
  1500.       marking  but  it can be useful to extract a sentence from a paragraph
  1501.       when you are editing texts (but not programs).
  1502.  
  1503.            Anyway,  the  marked  zone  will  appear  highlighted (the block
  1504.       attribute can be specified in your profile like any other color). The
  1505.       block  mark  status  indicator on the command line will show "MARKED"
  1506.       or "EXTERNAL" if you switch to another text.
  1507.  
  1508.            From  now,  you can apply any of the function described below to
  1509.       the  marked  area.  This  marked area can be modified at any time and
  1510.       will remain active until you UNMARK it.
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.                                 E!.DOC page 23
  1518.  
  1519.  
  1520.                                     E!.DOC
  1521.  
  1522.       UNMARKING A BLOCK - Alt U
  1523.       _________________________
  1524.  
  1525.            Alt  U  will  unmark  any  marked  area even if it is not in the
  1526.       current text.
  1527.  
  1528.  
  1529.       DELETING A BLOCK - Alt D
  1530.       ________________________
  1531.  
  1532.            Alt  D  deletes the marked area. If the area was marked with Alt
  1533.       L,  all  marked  lines  are saved in the UNDO buffer. If the area was
  1534.       marked  with  Alt  B  the corresponding lines are not deleted even if
  1535.       they  are empty after block deletion. Don't use any marking to delete
  1536.       only  one line. Use Ctrl Bsp instead. Remember, the marked block will
  1537.       be deleted even if it is an "external" block.
  1538.  
  1539.  
  1540.       COPYING A BLOCK - Alt C
  1541.       _______________________
  1542.  
  1543.            Alt  C  copies the marked block at the cursor position. That is,
  1544.       if  the  marked  area  is a GROUP of LINES, these lines are inserted
  1545.       between  the  current line and the next line. If the marked area is a
  1546.       RECTANGULAR  block,  this  block  is  inserted  at  cursor  position,
  1547.       shifting all text to the right.
  1548.  
  1549.            In  COMMAND mode, the current block is copied at cursor position
  1550.       only  if  there  is  enough room on the command line and if the block
  1551.       height is 1.
  1552.  
  1553.  
  1554.       MOVING A BLOCK - Alt M
  1555.       ______________________
  1556.  
  1557.            This  command works like the COPY command but the marked area is
  1558.       deleted after being copied.
  1559.  
  1560.  
  1561.       OVERLAYING A BLOCK - Alt O
  1562.       __________________________
  1563.  
  1564.            This  command  works  like the COPY command but the block is not
  1565.       inserted  but  overlayed at the cursor position and any existing text
  1566.       is  overwritten.  It  works  only  with  the RECTANGULAR blocks. With
  1567.       marked LINES it works exactly like COPY.
  1568.  
  1569.  
  1570.       ADJUSTING A BLOCK - Alt A
  1571.       _________________________
  1572.  
  1573.            This  function  works only with RECTANGULAR blocks. It functions
  1574.       like a MOVE but the block can overlay itself, so small adjustments of
  1575.       the block position can be made very easily.
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.                                 E!.DOC page 24
  1584.  
  1585.  
  1586.                                     E!.DOC
  1587.  
  1588.       SPECIAL FUNCTIONS
  1589.       _________________
  1590.  
  1591.  
  1592.            FILLING A BLOCK - Alt F
  1593.            _______________________
  1594.  
  1595.            Alt  F  prompts  you for a character. Hit this character and the
  1596.       marked block will be filled with it.
  1597.  
  1598.  
  1599.            SORTING LINES - Alt G
  1600.            _____________________
  1601.  
  1602.            If  the  marked area is a GROUP of LINES the sort criterion will
  1603.       be  the  entire  line.  With  a RECTANGULAR block, the sort criterion
  1604.       will  be  the  marked  part  of  the line. E! will prompt you for the
  1605.       sort  direction  (ascending  or  descending).  If  there  is  no room
  1606.       enough  on  the E! stack to complete the sort it will be interrupted.
  1607.       E! sort is VERY quick and it will be useful for many editing tasks.
  1608.  
  1609.  
  1610.            DRAWING A BOX - Alt H
  1611.            _____________________
  1612.  
  1613.  
  1614.            Alt  H  will  draw  a box around a RECTANGULAR block. The box is
  1615.       drawn WITHIN the highlighted area. So please reserve space around the
  1616.       text when marking the block. See also DRAWING mode.
  1617.  
  1618.  
  1619.            ADDING BLOCK CONTENT - Alt N
  1620.            ____________________________
  1621.  
  1622.            Alt  N  evaluates  all  lines  of  the RECTANGULAR block and add
  1623.       them  together  (if  they  represent numerical values). The result is
  1624.       then  inserted  at cursor position. The cursor may be in another text
  1625.       than  the  marked  text.  If  the  block data cannot be evaluated the
  1626.       error coordinates are displayed on the help line.
  1627.  
  1628.  
  1629.            CENTERING TEXT IN A BLOCK - Ctrl F5
  1630.            ___________________________________
  1631.  
  1632.            Ctrl F5 will center the marked text in the marked area.
  1633.  
  1634.  
  1635.            SHIFTING LINES -  Alt -
  1636.            _______________________
  1637.  
  1638.            This  function  is a convenient way to shift a group of lines to
  1639.       the  right.  You will have to mark a RECTANGULAR area. The block left
  1640.       limit  will  the  considered  to  be the start position for shifting,
  1641.       the  amount  of  columns  to  shift  will  be the block width and all
  1642.       lines  involved  in  the  block  marked  will  be  shifted. This is a
  1643.       little  hard  to  explain  but  fortunately very easy to do. Just try
  1644.       it!
  1645.  
  1646.  
  1647.            NOTE  :  see  remarks  about  DOS  3.3  in  the  DEFINE  command
  1648.  
  1649.                                 E!.DOC page 25
  1650.  
  1651.  
  1652.                                     E!.DOC
  1653.  
  1654.       paragraph and at the beginning of this documentation.
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.                                 E!.DOC page 26
  1716.  
  1717.  
  1718.                                     E!.DOC
  1719.  
  1720. I. FORMATTING
  1721. _____________
  1722.  
  1723.            Although  E!  is  not  a word processing software, it offers you
  1724.       some   powerful   formatting  functions.  Two  formatting  modes  are
  1725.       available  :  WORDWRAP  and JUSTIFICATION. JUSTIFICATION works almost
  1726.       the  same  as WORDWRAP but it also makes a right justification of the
  1727.       text being edited.
  1728.  
  1729.            This can be obtained two ways :
  1730.  
  1731.               - reformatting an existing paragraph.
  1732.                 or
  1733.               - formatting the text automatically as you type it.
  1734.  
  1735.            To   activate   these  modes  you  have  first  to  hit  Ctrl  F
  1736.       (WORDWRAP).  If  you  want  to enable the JUSTIFICATION mode you have
  1737.       also  to  hit  Ctrl  J.  If  you  desable the WORDWRAP mode, you also
  1738.       disable the JUSTIFICATION mode. Ctrl F and Ctrl J are toggle keys.
  1739.  
  1740.       NOTE :
  1741.  
  1742.            WORDWRAP  YES  and  JUSTIFY  YES are ignored in the main profile
  1743.       (E!.LOG).  This  is  because the main profile is read before any text
  1744.       is  loaded  :  E!  maintains a WORDWRAP flag and a JUSTIFICATION flag
  1745.       for  each  file.  So, by reading the main profile E! does not know to
  1746.       which file this flags should apply.
  1747.  
  1748.            The  JUSTIFICATION mode will only be active if the WORDWRAP mode
  1749.       is active. So if you have JUSTIFY YES in a profile and if there is no
  1750.       WORDWRAP  YES  command or if the WORDWRAP mode is not already active,
  1751.       JUSTIFICATION mode will be without any effect.
  1752.  
  1753.            Then  you  have  to  specify margins. There are three values you
  1754.       can  specify : the left margin, the right margin, the paragraph begin
  1755.       margin.  Defaults  are  respectively 10, 70 and 15. To change margins
  1756.       values  use  the  MARGINS  command  or  load  a  profile containing a
  1757.       MARGINS command.
  1758.  
  1759.            To  format a paragraph (remember : a paragraph is any contiguous
  1760.       text  between blank lines) move the cursor to any position within the
  1761.       paragraph and hit Ctrl F6.
  1762.  
  1763.            For  new  paragraphs,  simply  enter your text and don't worry :
  1764.       E!  will  format  it  as  you  type. Each time you'll reach the right
  1765.       margin  E!  will  justify  (if  required)  the current line, insert a
  1766.       new  line,  move  the  cursor  to  the left margin of the new line so
  1767.       quick  that  you  can  continue  entering  text  without any problem.
  1768.       Though,  if you make a modification in the paragraph you will have to
  1769.       reformat with Ctrl F6.
  1770.  
  1771.            To  format several paragraphs at a time mark them with Alt L and
  1772.       hit   Ctrl  F7.  Formatting  will  begin  with  the  first  paragraph
  1773.       containing  a  marked  line  and  continue  until  the last paragraph
  1774.       containing a marked line has been reformated.
  1775.  
  1776.            If  you  toggle  to  DRAW  mode,  WORDWRAP and JUSTIFICATION are
  1777.       automatically disabled and reactivated when you leave the DRAW mode.
  1778.  
  1779.  
  1780.  
  1781.                                 E!.DOC page 27
  1782.  
  1783.  
  1784.                                     E!.DOC
  1785.  
  1786. J. DRAWING
  1787. __________
  1788.  
  1789.  
  1790.            With  E!  you  can  make  complex  drawings  with  semi-graphics
  1791.       characters  very  easily.  Hit  F6  or enter DRAW on the command line
  1792.       and specify a draw style (or mode) between 1 and 8 :
  1793.  
  1794.                   ┌─────┐      ╔═════╗      ╒═════╕      ╓─────╖
  1795.                1  ├─────┤   2  ╠═════╣   3  ╞═════╡   4  ╟─────╢
  1796.                   └─────┘      ╚═════╝      ╘═════╛      ╙─────╜
  1797.  
  1798.  
  1799.                   ███████      +++++++      +-----+      +-----+
  1800.                5  █     █   6  +     +   7  !     !   8  |     |
  1801.                   ███████      +++++++      +-----+      +-----+
  1802.  
  1803.  
  1804.            When  the  draw mode is active you "draw" by simply moving the 4
  1805.       direction  keys. E! manages automatically lines crossings so you just
  1806.       have  to indicate in which direction you want to draw. E! will do the
  1807.       job for you. To suspend drawing hit the SCROLLOCK key.
  1808.  
  1809.            When  SCROLLOCK is active, you can enter text and access many E!
  1810.       functions.  Though  we recommend you don't stay in DRAW mode if it is
  1811.       not necessary.
  1812.  
  1813.            When  you  enter the DRAW mode, the first character E! will draw
  1814.       depends  on the last direction key which was used. A simple character
  1815.       is considered as a right direction key (right arrow).
  1816.  
  1817.            When you cross an existing line you can :
  1818.  
  1819.            a. continue in the same direction, E! will draw a full cross
  1820.  
  1821.            b.  change  the  drawing  direction,  E! will link the two lines
  1822.       properly.
  1823.  
  1824.            If  you  make a mistake, just redraw over the existing line. The
  1825.       mistake will be corrected.
  1826.  
  1827.            Just  spend  a  few  minutes to try the DRAW mode : it's fun and
  1828.       easy.
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.                                 E!.DOC page 28
  1848.  
  1849.  
  1850.                                     E!.DOC
  1851.  
  1852. K. COMMANDS
  1853. ___________
  1854.  
  1855.  
  1856.            E!  commands  are entered on the E! command line. You access the
  1857.       E!  command  line  with the ESCAPE key which is a toggle key and will
  1858.       return you to the EDIT mode.
  1859.  
  1860.    1.About E! commands
  1861.    ___________________
  1862.  
  1863.            While  in  COMMAND  mode  you  can use the whole command line to
  1864.       enter  commands. All commands may be upper or lowercase. You may also
  1865.       use  shortcuts  to  enter  commands.  You  have to enter just as many
  1866.       characters  as  E!  needs  to  recognize  the  command (the "minimum"
  1867.       command is specified for each command).
  1868.  
  1869.               ex : Def for DEFINE
  1870.                    Asc for ASCII
  1871.                    Autot for Autotab
  1872.                    AutoC for Autocomp etc...
  1873.  
  1874.            All  entered  commands are stored in a circular list. So you can
  1875.       retrieve  old  commands,  reenter them or edit them. If you reenter a
  1876.       command  without  modifying  it, it is not restored. Old commands are
  1877.       retrieved  with the UP and DOWN keys. There is no limit to the number
  1878.       of commands E! can store.
  1879.  
  1880.            While  editing  the  command  line,  you  can  benefit  from the
  1881.       "normal"   line   editing   functions  (Home,  End,  Ctrl  End,  Ctrl
  1882.       Right,  Ctrl  Left,  etc...).  All  keystrokes not related to command
  1883.       line  editing  are  available  and redirected to the text. So you can
  1884.       continue  marking  and  deleting  text,  move blocks etc... A VIRTUAL
  1885.       cursor  is  always  available,  showing you what is the active cursor
  1886.       position in the text.
  1887.  
  1888.            (Please see ALT C in the BLOCKS MANIPULATION chapter).
  1889.  
  1890.            Last  but not least, any command entered on the command line and
  1891.       not  recognized  by  E! is redirected to DOS and executed. So you can
  1892.       run any internal or external DOS command or any program directly from
  1893.       the  E!  command line. If there is any problem executing this command
  1894.       E! will issue an appropriate message.
  1895.  
  1896.            You  can force command redirection to DOS prefixing your command
  1897.       with "*".
  1898.  
  1899.            ex : *LIST
  1900.  
  1901.            will  not  call  the E! "LIST" command but will directly execute
  1902.       the LIST program if available.
  1903.  
  1904.            You  can  also  execute  a  "blind"  DOS  command  prefixing the
  1905.       command  name  with  "@".  Doing so the E! screen will not be cleared
  1906.       and  the  DOS  command  will  be  executed  "in  the background". All
  1907.       program  STANDARD  outputs will be redirected in order to keep the E!
  1908.       screen  intact.  These  ouputs  are LOST. If you run a program making
  1909.       BIOS  calls  or  direct video access, the E! screen will be naturally
  1910.       affected.
  1911.  
  1912.  
  1913.                                 E!.DOC page 29
  1914.  
  1915.  
  1916.                                     E!.DOC
  1917.  
  1918.            Example:
  1919.  
  1920.            @cd\  will  switch to the root directory without showing any DOS
  1921.       prompt and without modifying the E! screen. This will save time.
  1922.  
  1923.            but issuing
  1924.  
  1925.            @dir
  1926.  
  1927.            would a real time loss because any output would be lost.
  1928.  
  1929.            @dir > list.lst
  1930.  
  1931.            should be more interesting.
  1932.  
  1933.            WARNING  :  If you load a TSR program (resident program) from E!
  1934.       this  will  generate  big  problems.  Generally  E! will see that and
  1935.       issue  a  warning  message  asking  you  to save the edited texts. No
  1936.       program  making  DOS accesses will accept that you load a TSR program
  1937.       during the shell.
  1938.  
  1939.            Before  processing  DOS  commands E! will try to recover as much
  1940.       memory  as  possible  for  your  program  to  run.  While  doing this
  1941.       E!  issues  a  message  :  "Compressing memory...". During idle times
  1942.       (that  is when you don't hit the keyboard) E! continually reorganizes
  1943.       memory  to  have  your text laying as low as possible in memory. This
  1944.       will also contribute to free some space for your programs.
  1945.  
  1946.  
  1947.    2.  E! COMMANDS REFERENCE
  1948.    _________________________
  1949.  
  1950.            E!  commands  are  listed below in alphabetical order. Generally
  1951.       commands  requiring  parameters may be entered without parameters. In
  1952.       this  case  E! will show you the active parameters for this function.
  1953.       This  is  not  true  for the DELAY and SCROLL functions which are not
  1954.       used very frequently.
  1955.  
  1956.            ex  :  MARGINS  entered  without any parameters will display the
  1957.       active margins. So you may edit them and enter the new values.
  1958.  
  1959.  
  1960.       AUTOBACK [yes/no]  (default YES) - ( autob )
  1961.  
  1962.            If AUTOBACK has been set to YES, pressing the BACKSPACE key will
  1963.       delete  the  left  character  and  move the right part of the line to
  1964.       left.  This is the way BACKSPACE normally works. Setting BACKSPACE to
  1965.       NO  will  cause the left character to be deleted but the line remains
  1966.       unchanged, that is the deleted character is replaced with a BLANK. No
  1967.       part of the line will be moved.
  1968.  
  1969.       AUTOCOMP [yes/no]  (default NO) - ( autoc )
  1970.  
  1971.            E!  always  consider the TAB character as a normal character and
  1972.       will  display  it  as  a  graphic  chararacter.  TAB  keystrokes  are
  1973.       actually  emulated.  If the text being loaded contains TAB characters
  1974.       you  may  want  these  TAB's to be expanded. In the same way, you may
  1975.       want  to  save  some  disk  space and convert all blanks sequences to
  1976.       TABs  when  it  is  possible. This is done using AUTOCOMP, EXPAND and
  1977.       COMPRESS.  If  AUTOCOMP  is  set  to YES, files will be automatically
  1978.  
  1979.                                 E!.DOC page 30
  1980.  
  1981.  
  1982.                                     E!.DOC
  1983.  
  1984.       expanded  when  they  are loaded and compressed when they are written
  1985.       to  disk  using  F4. E! uses a tabulation increment of 8 which is the
  1986.       value  used  by  DOS  and  all  ascci  editors.  So  you will have no
  1987.       problems loading files edited with other programs.
  1988.  
  1989.            E!  will  not  compress the blanks if you save the file with F2,
  1990.       SAVE  or  during  automatic  saving.  Only F4 causes the blanks to be
  1991.       compressed.  Naturally,  if  you  already  compressed  the  text with
  1992.       COMPRESS, compression is maintained.
  1993.  
  1994.            Strings between quotes (' or ") will never be compressed. So you
  1995.       will never have problems compressing sources files containing strings
  1996.       to be displayed.
  1997.  
  1998.            Compression  will  save  about  15-20%  of the file size on disk
  1999.       but  there  will  be  a  little  overhead  when the file is loaded or
  2000.       saved.  Compression  will be optimal if text indentation is made with
  2001.       the default increment (8).
  2002.  
  2003.            See COMPRESS and EXPAND.
  2004.  
  2005.            E!.MSG,  E!KEY.HLP and E!.HLP must not be compressed.
  2006.  
  2007.            Be  aware  that certain DOS commands don't know how to deal with
  2008.       tab characters. Hence, it is not recommended to compress batch files,
  2009.       autoexec.bat or config.sys.
  2010.  
  2011.       AUTOTAB [yes/no]  (default NO) - ( autot )
  2012.  
  2013.            AUTOTAB  YES will cause the TAB key to move the cursor under the
  2014.       first  character  of the next word on the previous line. Previous tab
  2015.       positions are ignored until AUTOTAB is set to NO.
  2016.  
  2017.       APPEND [filename]/[devname] - ( app )
  2018.  
  2019.            The  marked  BLOCK  or  GROUP  of  lines is appended to the file
  2020.       or to the DOS device specified (generally the printer).
  2021.  
  2022.       ASCII  char - ( asc )
  2023.  
  2024.            This command will display the ascii code of the character passed
  2025.       as  parameter.  If  no  parameter is passed, the current character is
  2026.       taken  as  parameter  if  there  is  a valid character at the current
  2027.       cursor position.
  2028.  
  2029.       AUTOLIMIT  n   (default 500) - ( autol )
  2030.  
  2031.            n  is the number of keystrokes triggering an autosave. This is a
  2032.       global  value  for all files being edited. Entering 0 will deactivate
  2033.       the  AUTOSAVE  process.  A  non  zero  value  for  AUTOLIMIT will not
  2034.       activate the AUTOSAVE process if it is set to NO.
  2035.  
  2036.       AUTOSAVE  [yes/no]  (default NO) ( autosa )
  2037.  
  2038.            AUTOSAVE  YES  will  activate the AUTOSAVE mode. When the number
  2039.       of  keys  you  pressed reaches the value specified with AUTOLIMIT the
  2040.       text  being  edited  is automatically saved to disk. Keystrokes count
  2041.       is  maintained  for  each  text  separately.  AUTOSAVE  is  a  global
  2042.       command affecting all texts being edited.
  2043.  
  2044.  
  2045.                                 E!.DOC page 31
  2046.  
  2047.  
  2048.                                     E!.DOC
  2049.  
  2050.            If  AUTOSAVE is active, every call to a DOS command or a call to
  2051.       the  E!  "COMPILE"  command will cause every modified text ( M on the
  2052.       status line) to be saved before the command is executed. This is very
  2053.       useful  if you are not convinced that the program you want to execute
  2054.       is  a  safe  program  or  if  you want to be sure to compile the last
  2055.       version of the source file your are editing.
  2056.  
  2057.       AUTOSCROLL [yes/no]  (default NO) - (autosc)
  2058.  
  2059.            When  you  are entering new text you will often find you editing
  2060.       on  the  last  physical  line  of the active window. Since you cannot
  2061.       see  the  text  under  the active line you may feel uncomfortable. If
  2062.       AUTOSCROLL  is  set  to  YES,  as soon as you reach the middle of the
  2063.       active  window  when  you  insert  new  lines,  E! will automatically
  2064.       scroll  one  line  up  when  you  insert a new line. So you will stay
  2065.       editing  on  the  middle of the active window. If you begin inserting
  2066.       past  the  "middle"  line  you  will stay on the line where you began
  2067.       inserting.
  2068.  
  2069.       BAK  [yes/no]   (default NO)  - ( bak )
  2070.  
  2071.            Setting  BAK  to YES will cause E! to generate .BAK copy of your
  2072.       existing  file  each  time  you  save  a  new version. This is a good
  2073.       security  but will consume much disk space. Automatic saving does not
  2074.       generate a .BAK file.
  2075.  
  2076.       CANCEL  [all]|[filename]  - ( can )
  2077.  
  2078.            The  specified  file  or  all  files  submitted to the DOS PRINT
  2079.       spooler  are  deleted  from the PRINT queue. Cancel without parameter
  2080.       deletes the current file from the PRINT queue. See SUBMIT.
  2081.  
  2082.       CHAR  n - ( char )
  2083.  
  2084.            Display the character the ascii code of which is n (decimal).
  2085.  
  2086.       CODE  [yes/no]    (default NO) - ( code )
  2087.  
  2088.            If  CODE  is  set to YES the error code value is displayed along
  2089.       with  error  messages.  This  may be convenient if the error messages
  2090.       file   has  been  lost  or  not  found.  So  you  can  refer  to  the
  2091.       documentation.
  2092.  
  2093.       COMPARE   (compa)
  2094.  
  2095.            This  command allows you to easily compare two text files. First
  2096.       make  sure  you  have at least 2 windows open. The first text must be
  2097.       displayed  in  the  current  window  and  the second text in the next
  2098.       window. Comparison will begin at the current line for each text. If a
  2099.       difference is found each file is displayed with the cursor set at the
  2100.       position where the difference was found.
  2101.  
  2102.       COMPRESS / EXPAND - ( compr / expan )
  2103.  
  2104.            Even  if  AUTOCOMP  is  set  to  NO,  you  may  want to compress
  2105.       blanks  to  tabs  in  your  text.  Use COMPRESS to do that. Tabs will
  2106.       appear  as  a  normal  control  character. EXPAND will expand tabs to
  2107.       blanks  using  the  DOS  conventions.  The file size indicator on the
  2108.       command  line  will  be updated so you can see what is the benefit of
  2109.       an eventual compression.
  2110.  
  2111.                                 E!.DOC page 32
  2112.  
  2113.  
  2114.                                     E!.DOC
  2115.  
  2116.  
  2117.            E!  will  not  compress a string containing quotes. That is, the
  2118.       part  between  quotes  will  not  be  compressed.  To avoid expansion
  2119.       problems, a line of text containing tabs will not be compressed.
  2120.  
  2121.       UNDO n
  2122.  
  2123.            This  command  specifies  the size of the E! UNDO buffer. It may
  2124.       vary  from  256  to  65521 bytes. Both sizes are not recommended. The
  2125.       default  is  2048  bytes. This command is actually not a real command
  2126.       and you cannot enter it on the command line. You may only use it ONCE
  2127.       in  the MAIN profile (E!.PRO). Any new UNDO command in a profile will
  2128.       be ignored.
  2129.  
  2130.       DEFINE   code - ( def )
  2131.                code string ou [code " string "] ou [code 'string ']
  2132.                code @nmacname
  2133.                code $proname
  2134.                code &ncommandname
  2135.                code functioncode
  2136.  
  2137.            The  DEFINE  command is one of the most important feature of E!.
  2138.       This  is  the  way to redefine the keyboard and to affect any kind of
  2139.       command, keystroke, string, profile, function or macro to a key.
  2140.  
  2141.            You  will  have generally two parameters to enter along with the
  2142.       DEFINE  command. The first parameter is always the keycode of the key
  2143.       you  want  to reassign. These keycodes are found in APPENDIX 2 and in
  2144.       the HELP file (partially for the latter).
  2145.  
  2146.            1.  The  most  simple  command  is the string assignment. Simply
  2147.       enter  the  string  you  want  to  assign  to  the  key as the second
  2148.       parameter  to  the  DEFINE command. The string may be entered without
  2149.       quotes  but in this case leading and trailing blanks will be ignored.
  2150.       You may use simple or double quotes.
  2151.  
  2152.            ex : Def 380 'E! is great'
  2153.  
  2154.            will affect the specified string to Alt 5.
  2155.  
  2156.            2. Affecting a macro (see MACROS) to a key is also quite simple.
  2157.  
  2158.            ex : Def 380 @macname.mac
  2159.  
  2160.            will  assign  the macro saved in the MACNAME.MAC file to the Alt
  2161.       5  key.  Each time you will press Alt 5 this macro will be loaded and
  2162.       executed.  The  active  macro  is temporarily saved and restored when
  2163.       the  called  macro is terminated. The .MAC extension is a default. So
  2164.       you don't need to specify it.
  2165.  
  2166.            3.  To  affect a profile to a key juste change the "@" character
  2167.       to a "$".
  2168.  
  2169.            ex : Def 380 $proname
  2170.  
  2171.            will  assign  the profile PRONAME.PRO to the Alt 5 key. When you
  2172.       will  press  Alt  5,  PRONAME.PRO  will  be  loaded  and  E!  will be
  2173.       reconfigured  using  this  new  profile.  This will be very useful if
  2174.       you  have  to switch between a program and text file. Using judicious
  2175.       profiles will help you to quickly change the editing context.
  2176.  
  2177.                                 E!.DOC page 33
  2178.  
  2179.  
  2180.                                     E!.DOC
  2181.  
  2182.  
  2183.            4.  Using the same method you will affect any command (including
  2184.       DOS commands) to a key :
  2185.  
  2186.            ex : Def 378 &edit myfile.e!
  2187.  
  2188.            will cause MYFILE.E! to be edited each time you press Alt 3.
  2189.  
  2190.            5.  DEFINE  also  allows  you to dinamically redefine the entire
  2191.       keyboard if you want :
  2192.  
  2193.            Define keycode functioncode
  2194.  
  2195.            ex : Def 389 3
  2196.  
  2197.  
  2198.            will assign the "Align Text" function (normally assigned to Ctrl
  2199.       A)  to  the  F11  key  if  you have an enhanced keyboard. Ctrl A will
  2200.       always  trigger the same function but it is now available for another
  2201.       job. Functions codes are described in APPENDIX 2.
  2202.  
  2203.            E!  has  a  more  easier  way to reassign keystrokes. Just enter
  2204.       DEFINE  (def)  without  any  parameter  on  the command line. E! will
  2205.       prompt you to hit :
  2206.  
  2207.            1. the target key for the reassignment
  2208.  
  2209.            2. the default key triggering the function you want to reassign.
  2210.  
  2211.            Example:
  2212.  
  2213.            Enter "def" on the command line.
  2214.  
  2215.            Hit F11 (this key is normally not affected).
  2216.            (E! will display 389 on the command line)
  2217.  
  2218.            Hit Ctrl A ("align text" function)
  2219.            (E! will display 1 on the command line)
  2220.  
  2221.            Hit Enter.
  2222.  
  2223.            That's all. You will not have to remember keycodes and functions
  2224.       codes. This definition may be edited before you hit ENTER. So you can
  2225.       change the second code to any string.
  2226.  
  2227.            NOTE  :  You  may have problems with DOS 3.3. Certain keystrokes
  2228.       are  no  more  recognized  with some keyboard drivers (FR and GR). If
  2229.       this  is  the case and if you don't need the CODE PAGE switching, you
  2230.       may use a keyboard driver from a previous DOS. This works very fine.
  2231.  
  2232.            6.  Using DEFINE with only the first parameter will reaffect the
  2233.       default function to the specified key.
  2234.  
  2235.            ex : Def 378
  2236.  
  2237.            will  cause  Alt  3 to trigger the default function which is the
  2238.       text marking.
  2239.  
  2240.            Normally  you  will  use DEFINE mainly in your PROFILES. You may
  2241.       also  use  the  following  tip  :  use  the same key in two different
  2242.  
  2243.                                 E!.DOC page 34
  2244.  
  2245.  
  2246.                                     E!.DOC
  2247.  
  2248.       profiles  to  toggle  between  them.  You  may  have  a  main profile
  2249.       designed  for  programming  containing a DEFINE command to assign the
  2250.       EDITING  PROFILE  loading  to  a  key.  This EDITING profile may also
  2251.       contain  a  command  assigning  the  MAIN PROFILE loading to the same
  2252.       key. So this key will toggle between the two profiles.
  2253.  
  2254.       DELAY  n    (default 850 - PC AT value)
  2255.  
  2256.            DELAY  specifies how long you have to press on a SHIFT key (Alt,
  2257.       Ctrl,  Shift)  to  display  the secondary help lines corresponding to
  2258.       that shift key. 0 will deactivate the secondary help lines. The upper
  2259.       limit for DELAY is 32767. Use it only if you are VERY patient.
  2260.  
  2261.       DENUMBER  (denum)
  2262.  
  2263.            If  you  used  the  NUMBER  command,  DENUMber  will delete line
  2264.       numbering  at the beginning of each line. WARNING : if this numbering
  2265.       has been altered, E! may delete some valid characters. See NUMBER.
  2266.  
  2267.       DRAW [1]|.......|[8] or empty entry (default 1) - ( draw )
  2268.  
  2269.            See DRAW chapter.
  2270.  
  2271.       DOS
  2272.  
  2273.            This  command  simply  opens a DOS session. Enter EXIT to return
  2274.       to  E!.  This  is  not  the more simple way to run DOS commands since
  2275.       you  may  enter  these  commands directly on the E! command line. DOS
  2276.       is here for convenience if you really need to "escape" to DOS.
  2277.  
  2278.            See also AUTOSAVE.
  2279.  
  2280.       EDIT  [filespec1] [filespec2]...[filespecn] - ( edit )
  2281.  
  2282.            See GETTING STARTED.
  2283.  
  2284.            NOTE - you have to be aware of two things :
  2285.  
  2286.            -  Before  loading  a file E! controls if there is enough memory
  2287.       to  keep  it  into  memory. If not, the file is simply not loaded and
  2288.       an error message is issued.
  2289.  
  2290.            -  Even  if the first control (which cannot be very accurate) is
  2291.       ok,  a  control  is made for each line loaded. This is a security for
  2292.       your files.
  2293.  
  2294.       EPROFILE - ( epro )
  2295.  
  2296.            Edit the E! main profile : E!.PRO.
  2297.  
  2298.       EGA-VGA  [yes/no]   (default YES)
  2299.  
  2300.            This  command  allows a 35/43/50 lines display mode when you hit
  2301.       Ctrl  G.  Normally  you  need  not  to  use  this  command  since  E!
  2302.       automatically   detects   if   you  can  benefit  from  these  modes.
  2303.       Unfortunately,  some  multi-standard  display  adapters do not behave
  2304.       very  well  and  you  may  experiment  problems.  So  this command is
  2305.       available to "manually" control these display modes.
  2306.  
  2307.  
  2308.  
  2309.                                 E!.DOC page 35
  2310.  
  2311.  
  2312.                                     E!.DOC
  2313.  
  2314.       EMSG
  2315.  
  2316.            Edit  the  E!.MSG  file.  So  you  can  freely  modify the error
  2317.       messages  and  help  lines  if you made some reassignments. The error
  2318.       messages lines order MUST not be changed for messages consistency.
  2319.  
  2320.       PUT filename - ( put )
  2321.  
  2322.            This command will cause the marked BLOCK or GROUP of lines to be
  2323.       written  in  the  specified  file wich may be a DOS system file (PRN,
  2324.       LPT1,  etc...).  Any  existing  file  is  overwritten.  If WARNING is
  2325.       active, E! will issue a warning message.
  2326.  
  2327.       PRINT  /code1/code2/code3/... - ( prin )
  2328.  
  2329.            This  is  the  way  to  print the current text. The printer will
  2330.       first  be  initialized  with the specified code1....coden ascii codes
  2331.       (decimal).
  2332.  
  2333.            ex : PRINT /27/69 (ESC E)
  2334.  
  2335.            will  print  the  current  file  with  a  near-letter-quality on
  2336.       an IBM compatible printer.
  2337.  
  2338.            This  way  of  printing  is not bufferized. To make a bufferized
  2339.       print  use  the  SUBMIT  command.  Naturally,  if  you  have  a print
  2340.       spooler  installed,  the  print will be bufferized. Hit ESCAPE at any
  2341.       time to cancel the print.
  2342.  
  2343.       GET filename - ( get )
  2344.  
  2345.            GET will load the specified file at the cursor position.
  2346.  
  2347.       LIST  [path] - ( list )
  2348.  
  2349.            LIST  is  a  very convenient command if you use it combined with
  2350.       Ctrl  L  (edit  current word as a file), Ctrl Z (list current word as
  2351.       a  directory),  Ctrl  X (execute cuurent line as a DOS command). LIST
  2352.       without  any  parameter  will  display the current directory in a new
  2353.       edit  buffer.  You  may  also specify a path and a file specification
  2354.       if needed.
  2355.  
  2356.            You  may want to use Alt G to sort the displayed list. Each LIST
  2357.       file  is named LIST.nnn. nnn begins with 000 and is incremented along
  2358.       your  E!  session. These files are erased as soon as they are created
  2359.       and displayed but you may save them if you want.
  2360.  
  2361.            Note  1  :  In  a  LIST "." and ".." always point to the current
  2362.       directory  and  the  current  directory  parent  directory.  Not  the
  2363.       directory being displayed.
  2364.  
  2365.            Note  2  :  LIST.xxx  will be also listed if you are listing the
  2366.       E! directory (that is the directory you specified with SET E!=....).
  2367.  
  2368.       LOG [yes/no] - (log)
  2369.  
  2370.            If  LOG  is  set to YES, a LOG file will be written each time E!
  2371.       exits.  This  allows  E!  to  reload  the  previous  a session and to
  2372.       position  the  cursor  at  the  last  editing  position in the edited
  2373.       files.
  2374.  
  2375.                                 E!.DOC page 36
  2376.  
  2377.  
  2378.                                     E!.DOC
  2379.  
  2380.  
  2381.       MACRO  [macname] - ( mac )
  2382.  
  2383.            Load and execute the specified macro. (See MACROS).
  2384.  
  2385.       MARGINS  [left right paragraph] - ( marg )
  2386.  
  2387.            MARGINS  without  parameter displays the active margins. You may
  2388.       edit  them  and  reenter  the  new  command or directly enter the new
  2389.       margins  values.  Margins  are not used by E! if the WORDWRAP mode is
  2390.       not  activated.  The  paragraph  margin value may be smaller than the
  2391.       left margin.
  2392.  
  2393.       MEMORY - ( mem )
  2394.  
  2395.            Before  displaying  the  amount  of memory available for editing
  2396.       and  for  running an external DOS program E! makes a full compression
  2397.       of the remaining memory space.
  2398.  
  2399.       SNOW [yes/no]  (default is automatic detection) - ( snow )
  2400.  
  2401.            Setting  SNOW  to  YES  will  force  E!  to synchronize with the
  2402.       display  adapter  to  update the screen. This is generally not needed
  2403.       unless  you have a CGA adapter. Usually E! will detect if SNOW YES is
  2404.       needed.  If  your  adapter  is not compatible you may want to control
  2405.       this manually.
  2406.  
  2407.       NMACRO macname - ( nmac )
  2408.  
  2409.            This  command  works  almost the same as MACRO but the specified
  2410.       macro  is  only  loaded and not executed. It becomes the active macro
  2411.       and  you  can  run it with Ctrl P. The previous active macro is saved
  2412.       and can be restored with Ctrl Q.
  2413.  
  2414.       NAME filename - ( nam )
  2415.  
  2416.            This is a simple command to rename the current text.
  2417.  
  2418.       NUMBER
  2419.  
  2420.            NUMBER  uses  no  parameters. It simply adds a line numbering to
  2421.       the  text.  That  is, the line number is REALLY inserted in your text
  2422.       and  not  only displayed. This will be useful to BASIC programmers or
  2423.       if  you  want  a  listing  with  line  numbers. See also DENUMber and
  2424.       RENUMber.
  2425.  
  2426.       PAUSE  [yes/no]
  2427.  
  2428.            If  PAUSE  is  set  to  YES, E! will wait for a keystroke before
  2429.       returning  from  DOS.  If  not,  there  is no wait and E! will return
  2430.       immediatly after executing the command.
  2431.  
  2432.       PROFILE  proname - ( pro )
  2433.  
  2434.            This  is  the  command  used  to reconfigure E! using a specific
  2435.       profile (generally different from the main profile). See PROFILES.
  2436.  
  2437.       QUIT - ( quit )
  2438.  
  2439.            Same as F3.
  2440.  
  2441.                                 E!.DOC page 37
  2442.  
  2443.  
  2444.                                     E!.DOC
  2445.  
  2446.  
  2447.       QQUIT
  2448.  
  2449.            QQUIT  will  cause  the  program to terminate immediatly after a
  2450.       last  warning  message. No file will be saved, initial video mode, if
  2451.       changed, is not restored and no LOG file is created or updated. It is
  2452.       not recommended to assign this command to a key.
  2453.  
  2454.  
  2455.  
  2456.  
  2457.       RENUMBER
  2458.  
  2459.            If  the  line  numbering  created  with NUMBER has been altered,
  2460.       RENUM will regenerate it (e.g. you moved some lines).
  2461.  
  2462.       RESETLOG (reset)
  2463.  
  2464.            This  command  RESETLOG  will avoid to reload recently discarded
  2465.       files if you call E! with /L on the next session.
  2466.  
  2467.            Example  :  if  you  have  been  editing  3  files F1, F2 and F3
  2468.       during  a  session,  E!  /L  will  reload the 3 files. If you entered
  2469.       RESETLOG  on  the E! command line after F1 and F2 have been discarded
  2470.       and  before  releasing  F3 from memory, E! /L will only reload F3 the
  2471.       next time you'll call it with /L.
  2472.  
  2473.       SAVE  [filename] - ( save )
  2474.  
  2475.            SAVE  without  any  filename  is  the  same  as F2. If you add a
  2476.       filename  to  the  command,  the  current file will be saved with the
  2477.       name you specified.
  2478.  
  2479.       SCROLL  n - ( scrol )
  2480.  
  2481.            n  is the amount of columns you want to be scrolled when you use
  2482.       Alt F3 or Alt F4.
  2483.  
  2484.       SELECTION - ( sel )
  2485.  
  2486.            This  command  allows  you to enter any character at the current
  2487.       cursor  position  (assuming  this  character  is  not defined on your
  2488.       keyboard).  This will be useful to enter characters from the extended
  2489.       ascii  set. Enter SELection on the E! command line. Use the direction
  2490.       keys  (with  or  without  Ctrl)  to select a character. The screen is
  2491.       permanently  updated  with  the  current selection so you can see the
  2492.       result  of  your selection before the character is really inserted in
  2493.       your text. Confirm with ENTER or cancel with ESCAPE.
  2494.  
  2495.       SLIST [listname] (slis)
  2496.  
  2497.            This  command  saves the names of all the files beeing edited in
  2498.       the  specified file for later use with the "@" load prefix. See using
  2499.       lists  of  files. If no name is provided, the default name (FILE.LST)
  2500.       is used. Previously existing list is overwritten.
  2501.  
  2502.       SMACRO  macname - ( smac )
  2503.  
  2504.            This  command  saves the active macro (defined with Ctrl R) in a
  2505.       file  named  macname.  The .MAC extension is the default, so you need
  2506.  
  2507.                                 E!.DOC page 38
  2508.  
  2509.  
  2510.                                     E!.DOC
  2511.  
  2512.       not  to  specify an extension. The macro is saved in the path defined
  2513.       with SET E!=... . See MACROS.
  2514.       SUBMIT - ( subm )
  2515.  
  2516.            This  command  assumes you have installed the DOS PRINT spooler.
  2517.       If  not, an error message is issued. SUBMIT entered without parameter
  2518.       will  enter the current text in the PRINT queue. Since PRINT works on
  2519.       a  file,  the  current  text  is  automatically  saved  before  being
  2520.       submitted  to  PRINT. You will then return to E! and the text will be
  2521.       printed as a background task.
  2522.  
  2523.            PLEASE  DO  NOT  install  PRINT  from  E!.  PRINT  is a resident
  2524.       program  and  will  cause E! to crash if you enter the *PRINT command
  2525.       from the E! command line or from a DOS session initiated from E!.
  2526.  
  2527.            To cancel a PRINT use the CANCEL command.
  2528.  
  2529.       STRIP - (strip)
  2530.  
  2531.            STRIP  causes  the  heighth  bit  of  all characters of the text
  2532.       being  edited  to  be  set  to 0. This is very useful if you loaded a
  2533.       text  edited  with  WORDSTAR (trademark). The text will be immediatly
  2534.       made  readable.  Naturally  all  characters belonging to extended IBM
  2535.       ascii  character  set will also be stripped (so be careful if you are
  2536.       DRAWING).
  2537.  
  2538.       TABS  [yes/no]   (default no)
  2539.  
  2540.            TABS  YES  tells  E!  to  display a ruler showing all active TAB
  2541.       positions.  This  ruler  is  updated when you scroll the text towards
  2542.       left or right or when you add or delete a tab position.
  2543.  
  2544.            TABS does not mean the same when you use it in a PROFILE.
  2545.  
  2546.       LOCK xxx
  2547.  
  2548.            If  you  ask  E!  to  load a non text file, it will generally be
  2549.       aware  of  that  and  will issue a warning message. Though it is more
  2550.       convenient  not  to  load  such files. As a default E! will refuse to
  2551.       load any file with a .COM, .EXE, .BIN, .OBJ extension. You may add up
  2552.       to  21  extensions  to this list using the LOCK command. This will be
  2553.       normally  specified  in  your PROFILE but you can use this command on
  2554.       the command line for temporary needs.
  2555.  
  2556.            Ex : Lock cpi
  2557.  
  2558.            will  preclude  E! to load any .CPI file (in this case code page
  2559.       files of DOS 3.3).
  2560.  
  2561.            If you used LOCK judiciously, you will be able to edit all files
  2562.       in a directory that are text files entering E! *.*.
  2563.  
  2564.       WARNING [yes/no] (default yes) - ( warn )
  2565.  
  2566.            A  warning message is issued when you overwrite an existing file
  2567.       only if WARNING is set to YES which is the default value.
  2568.  
  2569.       [+/-] n
  2570.  
  2571.            Moves  the  cursor  to  line n. If you use "+" or "-" the cursor
  2572.  
  2573.                                 E!.DOC page 39
  2574.  
  2575.  
  2576.                                     E!.DOC
  2577.  
  2578.       will be moved n lines forwards or backwards.
  2579.  
  2580.  
  2581.       SEARCH / REPLACE COMMANDS
  2582.  
  2583.       [!]|[=]/string1/[string2/][*][c][-][b][d]
  2584.  
  2585.               SEARCH ONLY :
  2586.  
  2587.               /string1/ : Searches the string "string1".
  2588.                           If ! (optional) is used, the string delimiter
  2589.                           may be different from "/".
  2590.               !%string1%  (convenient to search a string imbedding a "/")
  2591.  
  2592.               options   : c --> makes the search case sensitive.
  2593.                           - --> initiates a backwards search.
  2594.                           b --> limits the search area to the marked BLOCK
  2595.                                 or GROUP of LINES. Global search if no
  2596.                                 marked area exists.
  2597.                           d --> deactivates default options specified in
  2598.                                 the active PROFILE. See PROFILES. This
  2599.                                 option may be combined with the others.
  2600.  
  2601.               Ctrl S    : repeat search.
  2602.  
  2603.               Alt 0     : search the current word in the remaining part
  2604.                           of the text. The word may be delimited with
  2605.                           blanks or any quote or punctuation sign
  2606.                           (including programmation symbols).
  2607.  
  2608.  
  2609.               SEARCH AND REPLACE :
  2610.  
  2611.               =/string1/string2/[options]
  2612.  
  2613.                           The "=" sign is mandatory. String1 is the
  2614.                           searched string and string2 is the replacement
  2615.                           string. If you use the "*" option, replacements
  2616.                           are made without any confirmation prompt. If
  2617.                           not, you will be prompted to replace or not
  2618.                           (Y/N), Continue(C - same as *) or to
  2619.                           terminate the search. See below.
  2620.  
  2621.                           You may use b,c,d and - options.
  2622.  
  2623.            Here  is  the detailed answers you can make to the E! SEARCH and
  2624.       REPLACE prompt:
  2625.  
  2626.            -  YES  (Y) : the string will be replaced and E! will search the
  2627.       next occurence of string1.
  2628.  
  2629.            -  NO  (N) : the found string will be skipped (not replaced) and
  2630.       E! will search the next one.
  2631.  
  2632.            -  CONTINUE  (C)  :  the  string  will be replaced and all other
  2633.       occurences will be replaced without any prompt as if you entred the *
  2634.       option.
  2635.  
  2636.            -  QUIT  (Q)  :  the  string  is  not replaced and the search is
  2637.       terminated.
  2638.  
  2639.                                 E!.DOC page 40
  2640.  
  2641.  
  2642.                                     E!.DOC
  2643.  
  2644.  
  2645.            Using   Ctrl  S  always  initializes  a  simple  search  without
  2646.       replacement.
  2647.  
  2648.            If  the  b option (block limited search) is not used, the search
  2649.       will  always  begin at the current cursor position when you enter the
  2650.       search  command.  On  the  contrary,  using  Ctrl  S  to  repeat  the
  2651.       process  will  begin  the search at the last "found" position even if
  2652.       you  moved  the cursor in the mean time. If you really want to repeat
  2653.       the search from the CURRENT position, you will have to reinitiate the
  2654.       search   variables  hitting  Ctrl  V.  Search  variables  are  always
  2655.       initialized when :
  2656.  
  2657.            - you switch to another text
  2658.  
  2659.            - you load a new file
  2660.  
  2661.            So  the  search  will not necessarily begin at the first line of
  2662.       text.  To  ensure  the search will be global, use the b option (block
  2663.       limited  search)  without  marking any area or move the cursor to the
  2664.       text begin and hit Ctrl V.
  2665.  
  2666.            The  E!  search  process is circular. That is, when it finds the
  2667.       last  ocurrence  of  a  string  in the text, E! will display a search
  2668.       end  message  (Search  Terminated) if you hit Ctrl S. If you hit Ctrl
  2669.       S  again,  E!  will  found  the  first search string occurence again.
  2670.       This  will  not be necessary the first occurence of the string in the
  2671.       whole  text  but  the  first  occurence  of the string from the start
  2672.       point of the search when it was initialized.
  2673.  
  2674.            You  may  define default search options in your profiles. The E!
  2675.       default search options are :
  2676.  
  2677.            - not case sensitive
  2678.  
  2679.            - forwards
  2680.  
  2681.            - not limited to a block
  2682.  
  2683.            - prompts when replacing
  2684.  
  2685.            Only insert the following line in your profile:
  2686.  
  2687.            SEARCH       options
  2688.  
  2689.            the  options  string  being  made up of any option character (b,
  2690.       c,  *,  -).
  2691.  
  2692.            example:
  2693.  
  2694.            SEARCH       *c
  2695.  
  2696.            Remember  to  use  "d"  to deactivate the default search options
  2697.       from the command line.
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.                                 E!.DOC page 41
  2706.  
  2707.  
  2708.                                     E!.DOC
  2709.  
  2710. L. MACROS
  2711. _________
  2712.  
  2713.            You  will  often  find you typing identical keystrokes sequences
  2714.       again   and   again.   E!  allows  you  to  record  these  keystrokes
  2715.       (temporarily  or  permanently)  and to replay them each time they are
  2716.       needed.  These  keystrokes sequences are called macros. You will show
  2717.       E!  what  you  want  to  do  only  once and E! will repeat the job on
  2718.       request.
  2719.  
  2720.       TEMPORARY RECORDING
  2721.  
  2722.            To  record a sequence you just need to hit Ctrl R (ecord) before
  2723.       the  sequence begins. Use any command or function you have to use and
  2724.       hit  Ctrl  R  again  when your sequence is completed. E! will issue a
  2725.       message  as  the  recording  begins and ends. If you hit Ctrl U while
  2726.       recording, it is canceled.
  2727.  
  2728.            To replay the sequence, hit Ctrl P(lay).
  2729.  
  2730.            You  have  just defined the active macro. This macro can now be
  2731.       saved  in a file. If you record a new macro, the previous one will be
  2732.       saved in a buffer. Ctrl Q makes the saved macro active again.
  2733.  
  2734.            A macro may contain 253 keystrokes.
  2735.  
  2736.       RECORDING PERMANENTLY
  2737.  
  2738.            If  you defined a macro of general interest and if you think you
  2739.       will reuse it later, it will be useful to save it in a file for later
  2740.       use. SMACRO macname will do the job. The .MAC extension is a default,
  2741.       so  you  need  not give an extension. The macro will be stored in the
  2742.       directory you defined with SET E!=.... or in the current directory if
  2743.       you  defined  no  E!  directory. You may specify a path for the macro
  2744.       name.
  2745.  
  2746.            To  replay  the macro, just enter MACro macname (no extension if
  2747.       you choose the default) on the E! command line. The current macro, if
  2748.       any,  will  be  saved  and  macname will be executed. Then the active
  2749.       macro  will  be restored. Playing a macro with the macro command does
  2750.       not make it the active macro.
  2751.  
  2752.            The  NMACro  command will only load the specified macro and make
  2753.       it  the  active macro. To replay it, just enter Ctrl P. Use Ctrl Q to
  2754.       restore the previous one.
  2755.  
  2756.            As stated above, the DEFINE command allows you to assign a macro
  2757.       to  a  key  either  on  the E! command line or in you profile(s). See
  2758.       DEFINE.
  2759.  
  2760.            When you record the macro, one of the recorded keystrokes may be
  2761.       a  key  to which another macro was assigned. This means nested macros
  2762.       are  allowed.  There is no limit to the depth level of nested macros.
  2763.       Well,  it  is  not highly recommended to nest too many macros but you
  2764.       can  do  it.  Each nested macro uses 514 bytes of memory. There is no
  2765.       simple  way  to  control  if a macro is calling itself. Doing so will
  2766.       likely cause E! to crash!
  2767.  
  2768.            To  fully  control  the  execution of the macro E! will stop its
  2769.       execution  each  time  a  "non  neutral"  message  is  issued  during
  2770.  
  2771.                                 E!.DOC page 42
  2772.  
  2773.  
  2774.                                     E!.DOC
  2775.  
  2776.       execution.  For  example,  if  your  macro  is trying to move a block
  2777.       and  no  marked  block  is  here,  E!  will stop macro execution. Non
  2778.       neutral messages are listed in APPENDIX 1.
  2779.  
  2780.            If  you  recorded a complex macro you may want to continue macro
  2781.       execution.  This  will  happen  if  you inserted a "CONTINUE MARK" in
  2782.       your  macro  using  Alt  Q. If a macro is stopped after a non neutral
  2783.       message,  E!  will  look  the  macro for a "CONTINUE MARK". If one is
  2784.       found, macro execution will resume after the mark.
  2785.  
  2786.            If  your  macro  executes  E! functions requesting a user entry,
  2787.       the  entry  you  made  while  recording the macro is also "replayed".
  2788.       These  functions  are  Ctrl D (repeat character), Alt G (block sort),
  2789.        Alt H (draw box),  Alt F (fill block).
  2790.  
  2791.            E! also records the mode change, that is, you may toggle between
  2792.       EDIT  mode  and  COMMAND  mode  while recording a macro. All commands
  2793.       issued on the E! command line are recorded.
  2794.  
  2795.            Here  is  a  very  simple  example  of SEARCH and REPLACE macro.
  2796.       Assuming  you  are programming in Pascal and you want to convert some
  2797.       Pascal   keywords  to  uppercase  in  your  text  automatically.  The
  2798.       following will be the typical way of achieving this goal :
  2799.  
  2800.               Ctrl R     (begin macro recording)
  2801.               Ctrl Home  (move to text begin)
  2802.               Ctrl Home
  2803.               Escape     (command mode)
  2804.               =/begin/BEGIN/*
  2805.               ENTER
  2806.               Alt Q      (continue mark)
  2807.               Ctrl Home
  2808.               Ctrl Home
  2809.               =/end/END/*
  2810.               ENTER
  2811.               etc...
  2812.               Ctrl R     (end macro)
  2813.  
  2814.            Another   example:   you  want  to  delete  all  lines  containg
  2815.       "string1":
  2816.  
  2817.               Ctrl Home    (preparing the macro)
  2818.               Ctrl Home
  2819.               Esc
  2820.               /C1/
  2821.               ENTER
  2822.               Ctrl BackSpace
  2823.  
  2824.               Ctrl R     (begin macro recording)
  2825.               Ctrl S
  2826.               Ctrl BackSpace
  2827.               Ctrl R     (end macro)
  2828.  
  2829.            Hit Ctrl P until you get a "Search terminated" message.
  2830.  
  2831.            Please notice the following :
  2832.  
  2833.            1.  E!  records the active mode (EDIT or COMMAND) when you begin
  2834.       recording.  It will be automatically restored as you replay the macro
  2835.       EVEN  IF IT IS A NESTED MACRO. So don't care about being in the right
  2836.  
  2837.                                 E!.DOC page 43
  2838.  
  2839.  
  2840.                                     E!.DOC
  2841.  
  2842.       mode when you hit Ctrl P.
  2843.  
  2844.            2.  On the contrary the active mode when the macro terminates is
  2845.       the mode that was active when you terminated recording.
  2846.  
  2847.            3.  E!  commands  executed  thru a macro are not recorded in the
  2848.       circular  command  list. It will save some precious memory. So please
  2849.       do  not  use  the  up and down direction keys when you record a macro
  2850.       you  plan  to  save  to  disk  : the editing context will likely have
  2851.       changed  and  your  macro  will  not  execute safely because you will
  2852.       not recall the right commands.
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.                                 E!.DOC page 44
  2904.  
  2905.  
  2906.                                     E!.DOC
  2907.  
  2908. M. PROFILES
  2909. ___________
  2910.  
  2911.            PROFILES  are  a very convenient way to configure or reconfigure
  2912.       E!  dynamically.  E!  is  always  configured  with  the  main PROFILE
  2913.       (E!.PRO)  when  it  is  loaded. You will reconfigure it while editing
  2914.       with any .PRO file.
  2915.  
  2916.            The  main profile is searched first in the current directory and
  2917.       then  in  E! directory (SET E!=...). You may want to design different
  2918.       "main  profiles" depending on the directory you are working in. If no
  2919.       E!.PRO file is found, default options are maintained.
  2920.  
  2921.            Generally  PROFILE  commands are similar or even identical to E!
  2922.       commands  but  it  will  not  be always the case. The "dummy" profile
  2923.       delivered with E! shows you all possible commands in a E! profile. To
  2924.       activate  them  you  will  have  to remove the double asterisk at the
  2925.       beginning  of  the  line  (** - all text after the double asterisk is
  2926.       ignored). These commands are also listed below.
  2927.  
  2928.            Shortcuts are not allowed in a profile. But the profile commands
  2929.       interpreter is not case sensitive.
  2930.  
  2931.            WARNING  :  when  you  load  a  new  profile  "over"  the active
  2932.       profile,  only  the  profile  commands  used  in  the new profile are
  2933.       rerun.  That  is,  all  other  options are not reset to their default
  2934.       values.
  2935.  
  2936.  
  2937.       TYPEMATIC
  2938.       *********
  2939.  
  2940.            On  computers  using  a  recent  AT BIOS (after 11/15/85), on PC
  2941.       XT 286 and PS/2 you can specify typematic parameters:
  2942.  
  2943.            1.  the  key  repeat  rate  :  from 2 to 30 characters/sec. This
  2944.       controls  how quickly a key will be repeated if it his held down long
  2945.       enough.
  2946.  
  2947.            2. the delay repeat value, one from the following :
  2948.  
  2949.               250, 500, 750 or 1000 ms.
  2950.  
  2951.            This  controls  how  long  a  key  must  be  held down before it
  2952.       repeats.
  2953.  
  2954.            To control the typematic parameters insert the following line in
  2955.       your profile :
  2956.  
  2957.            Typematic  n1(key repeat value)  n2(delay repeat value)
  2958.  
  2959.            ex:
  2960.  
  2961.            Typematic  30  750
  2962.  
  2963.            If  the  values  specified  are  out  of  range, nothing will be
  2964.       changed.  Default  BIOS  settings  are  n1  =  10 and n2 = 500. Using
  2965.       typematic  on  a  computer  without extended keyboard bios will do no
  2966.       harm. E! resets defaults before exiting.
  2967.  
  2968.  
  2969.                                 E!.DOC page 45
  2970.  
  2971.  
  2972.                                     E!.DOC
  2973.  
  2974.            Non integer values are allowed but are of low interest.
  2975.  
  2976.            This   function   does   not   disable   the   "emulated  cursor
  2977.       acceleration"  function  (SHIFT  +  arrows). Remember the accelerated
  2978.       cursor function does not work on non strictly compatible machines.
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.                                 E!.DOC page 46
  3036.  
  3037.  
  3038.                                     E!.DOC
  3039.  
  3040.                             PROFILE's COMMANDS
  3041.                             ******************
  3042.  
  3043.  
  3044.               "See  above"  means the command has the same effect than
  3045.               on the E! command line.
  3046.  
  3047.               Please enter one command per line.
  3048.  
  3049.  
  3050.   EGA-VGA     Yes/No                          default : Yes
  3051.  
  3052.               Don't  use  this  option  unless there is a problem with
  3053.               your display adapter. See above.
  3054.  
  3055.   35LINES     Yes/No                          default : No
  3056.  
  3057.               Replaces  the  43  or 50 lines mode with a more readable
  3058.               35 lines mode. See above.
  3059.  
  3060.   SOUND       Yes/No                          default : Yes
  3061.  
  3062.               Allows E! to beep all non neutral error messages.
  3063.  
  3064.   AUTOBACK    Yes/No                          default : Yes
  3065.  
  3066.               See above.
  3067.  
  3068.   AUTOFORMAT  yes/no                          default : no
  3069.  
  3070.               See above.
  3071.  
  3072.   AUTOCOMP    yes/no                          default : no
  3073.  
  3074.               See above.
  3075.  
  3076.   AUTOSAVE    yes/no                          default : no
  3077.  
  3078.               See above.
  3079.  
  3080.   AUTOTAB     yes/no                          default : no
  3081.  
  3082.               See above.
  3083.  
  3084.   AUTOLIMIT   n                               default : 500
  3085.  
  3086.               See above.
  3087.  
  3088.   BAK         yes/no                          default : no
  3089.  
  3090.               See above.
  3091.  
  3092.   SPACES      yes/no                          default : no
  3093.  
  3094.               SPACES  YES  will cause E! to remove all trailing blanks
  3095.               automatically when saving a file.
  3096.  
  3097.   CODE        yes/no                          default : no
  3098.  
  3099.               See above.
  3100.  
  3101.                                 E!.DOC page 47
  3102.  
  3103.  
  3104.                                     E!.DOC
  3105.  
  3106.  
  3107.   COMPILE     extension    compiler command line
  3108.                            ($$ = filename without extension)
  3109.  
  3110.               Compilers   definitions   will  be  inserted  with  this
  3111.               command. See "Programming support" below.
  3112.  
  3113.   UNDO        n                               default : 2048
  3114.  
  3115.               See above.
  3116.  
  3117.   DELAY       n                               default : 850
  3118.  
  3119.               See above.
  3120.  
  3121.   EOL         [CRLF|LFCR|LF|CR]               default : CRLF
  3122.  
  3123.               Specify  the  End  of Line termination sequence. This is
  3124.               normally  a  CRLF  sequence  but some programs use other
  3125.               conventions.  PLEASE  DON'T  USE THIS COMMAND UNLESS YOU
  3126.               REALLY  NEED  IT.  SAVING  A  FILE  WITH  AN EOL SETTING
  3127.               DIFFERENT FROM CRLF OR CR WILL MAKE IT NON LOADABLE WITH
  3128.               E!.
  3129.  
  3130.   ADDONLAST   yes/no                          default : yes
  3131.  
  3132.               ADDONLAST  YES  allows  E! to insert a new line when you
  3133.               hit  the  down arrow whith the cursor laying on the last
  3134.               line of the current text.
  3135.  
  3136.   IBM101T     yes/no                          default : no
  3137.  
  3138.               E!  does  not  recognize  the  IBM enhanced keyboard (or
  3139.               equivalent)  unless  you  tell  him  to  do  so. Setting
  3140.               IBM101T  to  YES  with  non enhanced keyboard will cause
  3141.               the program to crash! (machine hang on loading).
  3142.  
  3143.   INSERT      yes/no                          default : no
  3144.  
  3145.               This defines the Insert key state when E! is loaded.
  3146.  
  3147.   PRTINIT     /n1/n2/n3...
  3148.  
  3149.               This   will   set   the   default   values  for  printer
  3150.               initialization  when  you  use  the PRINT command. These
  3151.               values  are  not  sent to the printer if you specify new
  3152.               values on the E! command lines. See above.
  3153.  
  3154.   JUSTIFY     yes/no                          default : no
  3155.  
  3156.               Set  the  JUSTIFICATION  mode  toggle. This will have no
  3157.               effect in the main profile. See above.
  3158.  
  3159.   LOG         yes/no                          default : no
  3160.  
  3161.               See above.
  3162.  
  3163.   MARGINS     left right paragraph            default : 10 70 15
  3164.  
  3165.               See above.
  3166.  
  3167.                                 E!.DOC page 48
  3168.  
  3169.  
  3170.                                     E!.DOC
  3171.  
  3172.  
  3173.   PAUSE       yes/no                          default : yes
  3174.  
  3175.               See above.
  3176.  
  3177.   SNOW        yes/no                          default : yes
  3178.  
  3179.               See above.
  3180.  
  3181.   SCROLL      n                               default : 40
  3182.  
  3183.               See above.
  3184.  
  3185.   SPLIT       yes/no                          default : no
  3186.  
  3187.               This  command  changes  the behaviour of the Enter key.
  3188.               If  it  is toggled to YES, ENTER will split the current
  3189.               line  at  the  cursor  position if the Insert toggle is
  3190.               ON.  So  you will no more use the Alt S key. So you may
  3191.               conveniently  choose  between  the classical way or the
  3192.               E! way for line insertion and splitting.
  3193.  
  3194.   TABS        n1 n2 n3 ...
  3195.  
  3196.               Define   new  tab  positions  and  remove  all  previous
  3197.               registered positions.
  3198.  
  3199.   TYPEMATIC   speed delay
  3200.  
  3201.               See above.
  3202.  
  3203.   LOCK        xxx                             default : COM EXE BIN OBJ
  3204.  
  3205.               See above.
  3206.  
  3207.   WARNING     yes/no                          default : yes
  3208.  
  3209.               See above.
  3210.  
  3211.   CURSOR      yes/no                          default : yes
  3212.  
  3213.               CURSOR  NO disables the "accelerated cursor emulation on
  3214.               non strictly compatible computers.
  3215.  
  3216.   DEFINE   code   @macname    ** Assigns a macro to key
  3217.            code   $proname    ** Assigns a profile to a key
  3218.            code   &commname   ** Assigns a command to a key
  3219.            code   chaîne      ** Assigns a string to a key
  3220.            code   "chaîne"    ** Use quotes if you want to imbed
  3221.            code   'chaîne'    ** leading or trailing blanks
  3222.            code   fnccode     ** Assigns a function to a key.
  3223.            code               ** Restore the default function
  3224.  
  3225.   DEFINE  without parameter has no effect in a profile
  3226.  
  3227.  
  3228.   COLOR DEFINITIONS =  SCREEN_AREA background foreground
  3229.  
  3230.   C_HELP            b f         ** Help line
  3231.   C_BLOCK           b f         ** Marked blocks
  3232.  
  3233.                                 E!.DOC page 49
  3234.  
  3235.  
  3236.                                     E!.DOC
  3237.  
  3238.   C_BORDER          b           ** Border (CGA/EGA/VGA only)
  3239.                                 ** be careful with multi-standards
  3240.                                 ** adapters
  3241.   C_COMMAND         b f         ** Command line
  3242.   C_CURSOR          b f         ** Virtual cursor
  3243.   C_MESSAGES        b f         ** Messages
  3244.   C_STATUS1         b f         ** Status line (fixed part)
  3245.   C_STATUS2         b f         ** Status line (variables)
  3246.   C_TEXT            b f         ** Text
  3247.  
  3248.  
  3249.   0 black       4 red           8  gray              12 light red
  3250.   1 blue        5 magenta       9  light blue        13 light magenta
  3251.   2 green       6 brown         10 light green       14 yellow
  3252.   3 cyan        7 light grey    11 light cyan        15 white
  3253.  
  3254.   CURSOR SHAPE DEFINITION =  SCREENTYPE  topline bottomline
  3255.  
  3256.   CURSORMONO     tl bl       ** Cursor shape in overwrite mode
  3257.   CURSORCOL      tl bl
  3258.   CURSORMONOINS  tl bl       ** Cursor shape in insert mode
  3259.   CURSORCOLINS   tl bl
  3260.  
  3261.               This  command  controls  the cursor shape. Use it if you
  3262.               don't  like  the default values or if you have a problem
  3263.               with  your display adapter. Some EGA / VGA adapters have
  3264.               a VERY bad cursor emulation.
  3265.  
  3266.               tl  is  the  top  scan  line  and  bl is the bottom scan
  3267.               line.  The  following  diagram  shows  you how tl and bl
  3268.               work.  Allowed  ranges  for  tl and bl are 0-7 for color
  3269.               adapters and 0-13 for monochrome adapters.
  3270.  
  3271.  
  3272.     ┌────────────┐  top of character matrix (line 0)
  3273.     │            │
  3274.     │            │
  3275.     ├────────────┤  tl
  3276.     │▒▒▒▒▒▒▒▒▒▒▒▒│
  3277.     │▒▒▒▒▒▒▒▒▒▒▒▒│  visible part of cursor
  3278.     │▒▒▒▒▒▒▒▒▒▒▒▒│
  3279.     └────────────┘  bl - bottom of character matrix (ligne 7 ou 13)
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.                                 E!.DOC page 50
  3300.  
  3301.  
  3302.                                     E!.DOC
  3303.  
  3304. N. PROGRAMMING SUPPORT
  3305. ______________________
  3306.  
  3307.            To be a complete programming tool, E! has to offer some services
  3308.       in  the program compilation area. Well, it is the case. E! allows you
  3309.       to  compile  a  program source file and to retrieve errors within the
  3310.       source  file like any integrated compiler environment. This will work
  3311.       with  any compiler issuing standard error messages. If several errors
  3312.       are  detected, E! will build an internal list of errors and allow you
  3313.       to move from an error to the other in your source file.
  3314.  
  3315.            Let's examine the whole process of compiling a file under E!:
  3316.  
  3317.  
  3318.            1/ For any compiler you plan to use insert the following line in
  3319.       your active profile:
  3320.  
  3321.            COMPILE    ext    compiler command line
  3322.  
  3323.            example:
  3324.  
  3325.            COMPILE    asm    masm $$.asm;
  3326.  
  3327.            ($$ replaces the current filename without any extension)
  3328.  
  3329.  
  3330.            2/  Load  this  profile  to  activate  the command (if it is not
  3331.       already active).
  3332.  
  3333.            3/ Edit your source file and enter COMPILE without any parameter
  3334.       on the E! command line.
  3335.  
  3336.       THAT'S ALL.
  3337.  
  3338.            E!  will  search  an  internal  table  if  there is any compiler
  3339.       defined  for  the  current  file  extension.  For example, if you are
  3340.       editing  a  file  named  myprog.asm, E! will search this table for an
  3341.       "asm" entry.
  3342.  
  3343.            If  one  is  found,  E!  will  replace  the  $$ sequence in your
  3344.       compiler  command  line with the name of the current file WITHOUT any
  3345.       extension.  Before  calling  DOS  and  the compiler, E! will redirect
  3346.       all  DOS  output  to  one  file  named  "filename.ERR"  (to  be  more
  3347.       precise,   E!   redirects  stderr  and  stdout).  When  the  compiler
  3348.       returns  to  DOS, E! will analyze the .ERR files and will find out if
  3349.       there  are  errors  to  be  searched in the source file. It will then
  3350.       display  the  first  error in the list highlighting the corresponding
  3351.       line  in  your  text  and displaying the corresponding compiler error
  3352.       message on the E! help line.
  3353.  
  3354.            You  can  move between errors (if there are more than one) using
  3355.       Alt  F8 (move forward) and Alt F9 (move backward). The compiler error
  3356.       message will be automatically updated and the corresponding line from
  3357.       the  source  file  will  be highlighted. The error list remains valid
  3358.       until you run another compilation.
  3359.  
  3360.            If  E!  is  not  able  to  build  an  error  list  (non standard
  3361.       compiler  or  successful  compilation)  it  will  immediatly edit the
  3362.       generated .ERR file. So you can see the result yourself.
  3363.  
  3364.  
  3365.                                 E!.DOC page 51
  3366.  
  3367.  
  3368.                                     E!.DOC
  3369.  
  3370.            An error list is maintained for each file.
  3371.  
  3372.            Although  this  may  lead to memory space problems, this process
  3373.       will  also  work with the MAKE utility. Actually, this will work with
  3374.       any program you wish even if it is not a compiler.
  3375.  
  3376.            The profile command for a MAKE process will be very simple:
  3377.  
  3378.            Compile  C  MAKE $$
  3379.  
  3380.            will be generally sufficient.
  3381.  
  3382.  
  3383.            Although  this  is  a powerful function, E! will never replace a
  3384.       dedicated  programming  environment  but  it may be convenient to use
  3385.       the  E!  programming  support  to  verify if a source file is free of
  3386.       syntax  errors  or  to quickly compile short programs without loading
  3387.       the whole machinery of a more sophisticated environment.
  3388.  
  3389.            E! recognizes following error messages formats :
  3390.  
  3391.            error filename row: message
  3392.            warning filename row: message
  3393.            filename row column: message
  3394.            filename (row,column): message
  3395.            filename (row): message
  3396.            filename : row : message
  3397.            "filename", row column: message
  3398.  
  3399.            These formats are used with most compilers.
  3400.  
  3401.            To  modify  compile  options  you  will  have to edit the active
  3402.       profile and reload it. See PROFILE's.
  3403.  
  3404.            E!   has  been  successfully  tested  with  following  compilers
  3405.       (trademarks):
  3406.  
  3407.            Microsoft C 5.1
  3408.            Turbo C 1.5 / 2.0
  3409.            Turbo Pascal 4.0 / 5.0
  3410.            Microsoft Assembler 5.0 / 5.1
  3411.            Turbo Assembler 1.0
  3412.            Other compilers has been tested by E! users.
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.                                 E!.DOC page 52
  3432.  
  3433.  
  3434.                                     E!.DOC
  3435.  
  3436. O. E! IS A SHAREWARE
  3437. ____________________
  3438.  
  3439.            First,  I  would like to apologize for my poor english. I did my
  3440.       best  to  translate  this documentation properly but you will have to
  3441.       judge  the  result  yourself.  Any help to enhance this documentation
  3442.       file is welcome.
  3443.  
  3444.            E!  is  a  user  supported  software.  It  is  distributed  as a
  3445.       shareware.  You  may  freely copy it and distribute it as long as you
  3446.       do  not  charge  for  these  copies. However, an exception is granted
  3447.       to  recognized  user's groups which are hereby authorized to charge a
  3448.       small amount for postage, media, handling,  etc...
  3449.  
  3450.            If  you  suppose  E! development was a long (but exciting) task,
  3451.       you're  right.  I wrote the first line of code in January 87. At this
  3452.       time  there  was  still  10999  to  write  and  test  and rewrite and
  3453.       retest...  E!  has  been  beta tested by professional programmers. So
  3454.       you  can  assume  it is a safe program. Actually, E! has been written
  3455.       using E! which is the better test I could do.
  3456.  
  3457.            If  you  find E! easy to use, quick and efficient a registration
  3458.       of  $50  would be greatly appreciated. This registration includes all
  3459.       new  versions  or  updates  for one year. Please fill in registration
  3460.       form and send registration fee to :
  3461.  
  3462.         *     Guy Lachance.
  3463.         *     215-C Mulberry,
  3464.         *     El Paso, TX 79932.
  3465.         *     Compuserve : [71460,3407]
  3466.         *
  3467.         *     who is my reprensentative for the US and CANADA.
  3468.         *
  3469.         *  Suggestions and "bug reports" have to be sent either to:
  3470.         *
  3471.         *     72561,3532 on COMPUSERVE ( The author - Patrick Philippot)
  3472.         *
  3473.         *  or directly to the above address.
  3474.  
  3475.            Registered users will always receive a quick and detailed answer
  3476.       or an updated version if necessary.
  3477.  
  3478.            Please specify configuration and version number.
  3479.  
  3480.            If  you  are  interested  in  distributing  E!  as  a commercial
  3481.       software, please contact me.
  3482.  
  3483.  
  3484.  
  3485.  
  3486. Patrick PHILIPPOT - 10/5/1988
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.                                 E!.DOC page 53
  3498.  
  3499.  
  3500.                                     E!.DOC
  3501.  
  3502. APPENDIX 1 : ERROR MESSAGES
  3503. ___________________________
  3504.  
  3505.            "Non neutral" error messages don't stop execution of the current
  3506.       macro.  These  messages  are  actually  not  error  messages but only
  3507.       indicators of function completion. See MACROS.
  3508.  
  3509. 01     Not enough memory or too many lines
  3510. 02     Not text file(s) (likely)
  3511. 03     Input / Output error...
  3512. 04     No alternate window
  3513. 05     Can't create a window here
  3514. 06     ENTER to insert a line or  to return       * neutral message *
  3515. 07     Block already marked
  3516. 08     No marked block
  3517. 09     Source and destination conflict
  3518. 10     Block too big
  3519. 11     Control characters allowed                  * neutral message *
  3520. 12     Control characters discarded                * neutral message *
  3521. 13     Function interrupted
  3522. 14     Bookmark dropped                            * neutral message *
  3523. 15     Bookmark removed                            * neutral message *
  3524. 16     Recording macro - ^R to end
  3525. 17     Macro recorded - ^P to replay
  3526. 18     Macro cancelled
  3527. 19     Error during justification
  3528. 20     Non existing or locked file
  3529. 21     Error - Margins unchanged
  3530. 22     Not a valid line
  3531. 23     Search terminated
  3532. 24     Syntax error
  3533. 25     Please type one character and 3 digits
  3534. 26     Code error - key not assigned
  3535. 27     Character code error
  3536. 28     Printer not ready
  3537. 29     Unknown draw mode
  3538. 30     Not enough memory. Sort cancelled
  3539. 31     No active macro
  3540. 32     Error - Scroll unchanged
  3541. 33     DOS PRINT program not installed
  3542. 34     Spooler error
  3543. 35     New file                                    * neutral message *
  3544. 36     Textmark dropped                            * neutral message *
  3545. 37     Textmark(s) removed                         * neutral message *
  3546. 38     File too big
  3547. 39     New macro loaded
  3548. 40     Undo buffer is empty
  3549. 41     Error list is empty
  3550. 42     No matching brace
  3551. 43     No marked text
  3552. 44     Maximum number of windows is reached
  3553. 45     More than 2 windows use this border
  3554. 46     Error during execution
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.                                 E!.DOC page 54
  3564.  
  3565.  
  3566.                                     E!.DOC
  3567.  
  3568. APPENDIX 2 : KEY CODES AND FUNCTIONS CODES
  3569. __________________________________________
  3570.  
  3571. (h = top of keyboard - b = numeric pad)
  3572.  
  3573. CtrlA : 001  Move text of current line to cursor
  3574. CtrlB : 002  Upcase current word in Pascal style (i.e. upcase_it becomes Upcase
  3575. CtrlC : 003  Clear current line
  3576. CtrlD : 004  Repeat specified character
  3577. CtrlE : 005  Delete end of line from cursor
  3578. CtrlF : 006  Toggle wordwrap mode
  3579. CtrlG : 007  Toggle 35/43/50 lines mode
  3580. CtrlH : 008  Delete left character
  3581. CtrlI : 009  Move cursor to next tab position
  3582. CtrlJ : 010  Toggle justify mode
  3583. CtrlK : 011
  3584. CtrlL : 012  If current word is a file name, file is edited
  3585. CtrlM : 013  Insert a new line
  3586. CtrlN : 014  Insert file name at cursor
  3587. CtrlO : 015
  3588. CtrlP : 016  Play active macro
  3589. CtrlQ : 017  Restore previous macro
  3590. CtrlR : 018  Begin / End macro record
  3591. CtrlS : 019  Repeat last search
  3592. CtrlT : 020  Insert system date and time at cursor
  3593. CtrlU : 021  Cancel macro record
  3594. CtrlV : 022  Initialize search variables
  3595. CtrlW : 023  Delete current word
  3596. CtrlX : 024  If current line is a DOS command, it is executed
  3597. CtrlZ : 026  If current line is a valid DOS directory, it is edited
  3598.  
  3599. CtrlF1: 350  Upcase current word
  3600. CtrlF2: 351  Lowcase current word
  3601. CtrlF3: 352  Upcase current block
  3602. CtrlF4: 353  Lowcase current block
  3603. CtrlF5: 354  Center text in block
  3604. CtrlF6: 355  Reformat current paragraph
  3605. CtrlF7: 356  Reformat current block
  3606. CtrlF8: 357
  3607. CtrlF9: 358
  3608. CtrlF0: 359
  3609.  
  3610. Ctrl 6: 030
  3611. Ctrl -: 031
  3612. ^ Bsp : 127  Delete current line
  3613.  
  3614. AltA  : 286  Adjust block position
  3615. AltB  : 304  Mark block
  3616. AltC  : 302  Copy block at cursor position
  3617. AltD  : 288  Delete block
  3618. AltE  : 274  Move cursor to end of block
  3619. AltF  : 289  Fill block with specified character
  3620. AltG  : 290  Sort marked block (the entire lines are moved - key is block delim
  3621. AltH  : 291  Draw a box around block
  3622. AltI  : 279  Remove all tab positions
  3623. AltJ  : 292  Join current line and next line
  3624. AltK  : 293  Drop bookmark / Return to bookmark
  3625. AltL  : 294  Mark a line or a group of lines
  3626. AltM  : 306  Move block to cursor
  3627. AltN  : 305  Add values within block and display result at cursor
  3628.  
  3629.                                 E!.DOC page 55
  3630.  
  3631.  
  3632.                                     E!.DOC
  3633.  
  3634. AltO  : 280  Overlay block at cursor position
  3635. AltP  : 281  Move cursor to next paragraph
  3636. AltQ  : 272  Insert "continue-mark" in macro being recorded
  3637. AltR  : 275  Remove a tab position
  3638. AltS  : 287  Split line at cursor position
  3639. AltT  : 276  Create a tab position
  3640. AltU  : 278  Unmark block
  3641. AltV  : 303  Remove trailing blanks
  3642. AltW  : 273  Mark current word
  3643. AltX  : 301  Allow entry of control characters
  3644. AltY  : 277  Move cursor to beginning of block
  3645. AltZ  : 300  Mark a sentence
  3646.  
  3647. Alt1  : 376  Drop first textmark
  3648. Alt2  : 377  Drop second textmark
  3649. Alt3  : 378  Drop third textmark
  3650. Alt4  : 379  Remove all textmarks
  3651. Alt5  : 380  Refresh current file from disk
  3652. Alt6  : 381  Search paired braces
  3653. Alt7  : 382  Insert paired braces
  3654. Alt8  : 383  Restore last removed lines
  3655. Alt9  : 384  Insert lines automatically captured under DOS
  3656. Alt0  : 385  Search current word
  3657. Alt)- : 386  Insert blanks columns before block
  3658. Alt=  : 387  Insert blanks without moving cursor
  3659.  
  3660. F1    : 315  Load help file
  3661. F2    : 316  Save current file
  3662. F3    : 317  Leave current file without saving
  3663. F4    : 318  Save and leave current file
  3664. F5    : 319  Create / Remove a window
  3665. F6    : 320  Toggle draw mode
  3666. F7    : 321  Rename current file
  3667. F8    : 322  Edit new file(s)
  3668. F9    : 323  Restore (undo) current line
  3669. F0    : 324  Go to next file
  3670.  
  3671. ShftF1: 340  Scroll left one character at a time
  3672. ShftF2: 341  Scroll right one character at a time
  3673. ShftF3: 342  Scroll down one line at a time
  3674. ShftF4: 343  Scroll up one line at a time
  3675. ShftF5: 344  Center current line in window
  3676. ShftF6: 345  Raise current line to top of window
  3677. ShftF7: 346
  3678. ShftF8: 347
  3679. ShftF9: 348
  3680. ShftF0: 349
  3681.  
  3682. Alt F1: 360  Display information about specified key
  3683. Alt F2: 361
  3684. Alt F3: 362  Scroll left (number of columns specified with SCROLL command)
  3685. Alt F4: 363  Scroll right (number of columns specified with SCROLL command)
  3686. Alt F5: 364  Change active window
  3687. Alt F6: 365  Remove a window
  3688. Alt F7: 366  Return to full screen mode
  3689. Alt F8: 367  Next compilation error
  3690. Alt F9: 368  Previous compilation error
  3691. Alt F0: 369  Go to previous file
  3692.  
  3693. Bsp   : 008  Delete left character
  3694.  
  3695.                                 E!.DOC page 56
  3696.  
  3697.  
  3698.                                     E!.DOC
  3699.  
  3700. Enter : 013  Insert a new line
  3701. Esc   : 027  Toggle between CommandMode and EditMode
  3702. Tab   : 009  Move cursor to next tab position
  3703. Sh Tab: 271  Move cursor to previous tab position
  3704. Home  : 327  Move to beginning of current or previous line
  3705. Up    : 328  Move to previous line
  3706. PgUp  : 329  Scroll one screen up
  3707. Left  : 331  Move cursor left
  3708. Right : 333  Move cursor right
  3709. End   : 335  Move to end of current or next line
  3710. Down  : 336  Move to next line
  3711. PgDn  : 337  Scroll one screen down
  3712. Insert: 338  Toggle insert mode
  3713. Del   : 339  Delete character at cursor
  3714. ^ Left: 371  Go to previous word
  3715. ^Right: 372  Go to next word
  3716. ^ End : 373  Move cursor to end of text
  3717. ^ PgDn: 374  Move cursor to end of screen
  3718. ^ Home: 375  Move cursor to beginning of text
  3719. ^ PgUp: 388  Move cursor to top of screen
  3720.  
  3721.  
  3722.  
  3723.  
  3724. IBM ENHANCED KEYBOARD ONLY (no function assigned)
  3725. _________________________________________________
  3726.  
  3727. F11    :389     Alt Esc:257    AltEnd:415   ^ Ins :402
  3728. F12    :390     Alt *  :299    Alt Dn:416   ^ Del :403
  3729. ^F11   :393     Alt - h:381    AltIns:418   ^ Tab :404
  3730. ^F12   :394     Alt - b:330    AltDel:419
  3731. ShF11  :391     5(bloc):332    Alt / :420
  3732. ShF12  :392     Alt +  :334    AltEnt:422
  3733. Alt F11:395     Alt Hom:407    ^ Up  :397
  3734. Alt F12:396     Alt Up :408    ^ Dn  :401
  3735.                 Alt PgU:409    Ctrl-b:398
  3736.                 Alt Lef:411    Ctrl5b:399
  3737.                 Alt Rig:413    Ctrl+b:400
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.                                 E!.DOC page 57
  3762.  
  3763.  
  3764.                                     E!.DOC
  3765.  
  3766. APPENDIX 3 :KEYCODES NOT USED BY E!
  3767. ___________________________________
  3768.  
  3769.  
  3770.        Ctrl O     Ctrl F8     Shift F7     Ctrl 2
  3771.        Ctrl Y     Ctrl F9     Shift F8     Ctrl 6
  3772.                   Ctrl F10    Shift F9
  3773.                               Shift F10
  3774.  
  3775.  
  3776.  
  3777.        and all keystrokes from the enhanced keyboard.
  3778.  
  3779.            If  you  find  some  E!  functions not useful, you may use their
  3780.       corresponding keystrokes to implement some specific command or macro,
  3781.       etc...
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.                                 E!.DOC page 58
  3828.  
  3829.